Adjust monkey_patching to work under pytest #5689
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Background
I'm working towards introducing
pants
. Eventually I would like to use pants to run tests to take advantage of the fine-grained per-file caching of results that accounts for dependencies by python files (pants infers the deps by reading the python files). But, pants usespytest
to run tests notnosetest
.This is another of several PRs that improves our compatibility with pytest. Others include: #5686, #5690, #5691
Note: I do not have pytest support completely ironed out, but this is a step in that direction. Don't expect running all our tests with pytest to work yet.
Overview
Tests hang (with endless cycles between green threads that can't figure out what to do) when mongoengine gets imported before the monkey patching. So, this adjusts our monkey_patching code and the tests that use mongoengine to make our tests work better under pytest.
We need this because pytest can load test files in any order, or even load only a single test file. Since eventlet monkey_patching is very sensitive to when the monkey_patching happens, we need to make these adjustments or the tests won't work under pytest.