Ensure all tests can be run independantly
Many tests rely on the state leftover from other tests. This causes some tests to pass when run with ./run-tests.py but fail when run individually. All tests should be able to run individually in both platform and all plugins.
Which tests need fixing?
Install nosepipe and modify pulp.devel.test_runner.run_tests to include the --with-process-isolation option. Run the tests on platform or your plugins using ./run-tests.py. They will take a long time. Look at the output for the failed tests; those are the ones that are not independent.
- There will likely be many non-initialized database errors from test code attempting to use the database but relying on a previous test to configuring it. This can be solved by having run_tests() connect to the database once and for all and removing calls to initialize() throughout the test code. A consistent base class used by all unit tests is also an option.
#2 Updated by rbarlow about 7 years ago
On 01/22/2015 03:48 PM, Brian Bouterse wrote:
This can be solved by having run_tests() connect
to the database once and for all and removing calls to initialize()
throughout the test code.
I don't believe this will work, because run_tests() is a separate
process from nosetests (it uses subprocess to call nose.)
#3 Updated by bmbouter about 7 years ago
I think your comment was supposed to be left on #131. Regarding this refactor, this will work as it is described because the option is passed to nose. I also know it will work because I ran this on platform and it pointed out the tests that were not independent. I verified the ones it pointed out indeed do fail when run as a single test.
#16 Updated by bmbouter almost 3 years ago
Pulp 2 is approaching maintenance mode, and this Pulp 2 ticket is not being actively worked on. As such, it is being closed as WONTFIX. Pulp 2 is still accepting contributions though, so if you want to contribute a fix for this ticket, please reopen or comment on it. If you don't have permissions to reopen this ticket, or you want to discuss an issue, please reach out via the developer mailing list.