Refactor #132
closed
Ensure all tests can be run independantly
Description
The Problem
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.
Expected problems
- 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.
- Description updated (diff)
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.)
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.
- Tags Sprint Candidate added
- Blocked by deleted (Refactor #131: Move pulp.server.db.connection.initialize() calls exclusively to entry points)
- Has duplicate Refactor #116: The tests for pulp_rpm.plugins.importers.yum.sync cannot be run independently added
- Blocked by deleted (Task #133: Replace pulp.devel.test_runner with tox)
- Blocks Task #919: Add Jenkins job to ensure all tests pass independantly added
- Groomed set to Yes
- Tags deleted (
Groomed)
- Sprint Candidate set to Yes
- Tags deleted (
Sprint Candidate)
- Related to Issue #1554: Tests for pulp.server.managers.content.query cannot be run independently added
- Related to Issue #1553: Tests for pulp.server.managers.content.orphan cannot be run independently added
- Sprint Candidate changed from Yes to No
- Status changed from NEW to CLOSED - WONTFIX
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.
Also available in: Atom
PDF