Closed
Description
We're overhauling the User Sync Tool's testing infrastructure.
Rationale:
- pytest is preferable to nose - much simpler to use and powerful, flexible fixture system
- Testing framework for black box tests is confusing, difficult to use and doesn't integrate with CI systems
- 99% of what we can do in the black-box framework can be done as unit tests (by targeting
app.main()
, the entrypoint used by the pex build)
Changes in this update:
- Remove old
tests/
directory (if needed, can get old tests in v2.4) - Remove
test_framework/
(any components we might need can be obtained in v2.4) - Define a few new tests in
tests/
directory - Update setup and test dependencies in
setup.py
- Configure to run pytest with
python setup.py test
- Enable coverage reporting
- Fixture files for base config files
- Define fixtures to get base fixture directory and to get & modify base config files
- Refactor LDAP connector to isolate configuration option handling so we can test it
- Modify CI config and scripts to run tests
Rough roadmap:
- Define fixtures to mock UMAPI (we'll probably want to use the vcr.py-based mock server from the old
test_framework
) - Define fixtures to mock LDAP (once we switch to ldap3 as per Switch to ldap3 #436, we can use its mock LDAP server)
- Create a few tests that run the pex file to make sure the build succeeds. We'll need to integrate this with the CI builds and make these tests optional to run locally