-
Couldn't load subscription status.
- Fork 165
Synchronize fixtures on demand #1147
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Synchronize fixtures on demand #1147
Conversation
…ying the FixtureDef
…an the FixtureDef.
…nal fixture function to the wrapper.
… than the FixtureDef.
…iginal fixture function to the wrapper.
…cally. Previously, async coroutines and async generators used as fixture functions were wrapped with a fixture synchronizer during collection time. This allowed fixture function to be run as synchronous functions. This patch changes the synchronization to occur during the pytest_fixture_setup hook. The synchronization is now temporary, which means the wrapper fixture function is restored after the fixture setup has finished.
…xture from a fixture wrapper's arguments.
…t event loop instance.
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #1147 +/- ##
==========================================
- Coverage 89.93% 89.40% -0.54%
==========================================
Files 2 2
Lines 447 434 -13
Branches 53 51 -2
==========================================
- Hits 402 388 -14
- Misses 30 31 +1
Partials 15 15 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
This is a refactoring patch which replaces the preprocessing of fixtures at collection time with on-demand fixture wrapping. The new approach more closely resembles the order in which pytest evaluates non-async fixtures and reduces the number of pytest implementation details used in the code.
Supersedes #669
Closes #668