# Functional Tests within pulp_ansible * Where do tests live? * What types of tests do we have? * how do you run the tests * Look at some tests * CLI tests * Asserting correctness around syncing from galaxy.ansible.com and cloud.redhat.com * Galaxy V2 and V3 API tests (pulp_ansible implementation) ## Where do tests live? https://github.com/pulp/pulp_ansible/tree/master/pulp_ansible/tests * functional - API, CLI * unit - we have almost 0 unit tests * performance - tooling for scale testing * upgrade ## Running Tests in CI https://github.com/pulp/pulp_ansible/actions https://github.com/pulp/pulp_ansible/runs/2948470456?check_suite_focus=true#step:11:730 https://github.com/pulp/pulp_ansible/actions/runs/950846204 ## When are tests run * At pre-merge time * Nightly * For every release ## Tests use bindings, build + install bindings https://github.com/pulp/pulp_ansible/blob/ca0c6080e1072718d23d39eab66b7b708863d2e2/pulp_ansible/tests/upgrade/pre/test_collection_install.py#L7 `pbindings pulp_ansible python` ## Running Tests Locally Install the bindings Install the requirements https://github.com/pulp/pulp_ansible/blob/master/test_requirements.txt `pytest -v -r sx --color=yes --pyargs pulp_ansible.tests.functional -x` ## CLI tests https://github.com/pulp/pulp_ansible/tree/master/pulp_ansible/tests/functional/cli ## Tests Syncing galaxy.ansible.com (V2) https://github.com/pulp/pulp_ansible/tree/master/pulp_ansible/tests/functional/api/collection/v2 ## Tests Syncing cloud.redhat.com (V3) https://github.com/pulp/pulp_ansible/blob/master/pulp_ansible/tests/functional/api/collection/v3/test_sync.py#L161-L197 https://github.com/pulp/pulp_ansible/blob/master/pulp_ansible/tests/functional/api/collection/v3/test_sync.py#L200-L285 ## Tests asserting correctness for Pulp's implementation of the Galaxy V2 API https://github.com/pulp/pulp_ansible/blob/master/pulp_ansible/tests/functional/api/collection/v2/test_sync.py ## Tests asserting correctness for Pulp's implementation of the Galaxy V3 API https://github.com/pulp/pulp_ansible/blob/master/pulp_ansible/tests/functional/api/collection/v3/test_sync.py