-
Notifications
You must be signed in to change notification settings - Fork 36
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
[FEATURE] Record pytest fixtures #76
Comments
What could be done to make |
@Stranger6667, I'd be happy to submit a PR to support marking fixtures in this library. Could you please point me in the right direction or any known blockers? |
For scope="module" it also does not record requests/responses done in fixtures. |
Hi everybody! Sorry for the delay. I think that the way to approach this is to use the logic from the Though, not sure about configuring such a cassette writer - all the cassette naming & other stuff comes either from higher-level fixtures or pytest marks. The latter don't work on fixtures as far as I can tell :( However, there are module-level marks, so it may be used for recording cassettes inside module-level fixtures. Here is an idea: Make a session-level fixture that works similarly to the Recording module-level fixtures adds an extra layer here but could be done similarly implementation-wise: no access to higher-level configs & disabling the session-level fixture inside. Important note: We really need to isolate cassettes from different levels during execution. As VCR is mocking transports, I'd assume it is replacing globally-available functions, so cassettes will interfere with each other. So, it might require some bookkeeping with enabling/disabling different cassettes properly. Those are my current thoughts on this problem, and I didn't check if this approach will actually work (I assume it should). Let me know if you'd like me to elaborate. |
Hi @Stranger6667, is there any update on this? I would be really nice to be able to use vcr in fixtures. |
Hi! Unfortunately I don’t have much bandwidth to implement it myself, but will be happy to provide guidance and review a PR |
Is your feature request related to a problem? Please describe.
In my project i am using fixtures with scope="session" and the requests that are made in the fixture setup are not being recorded, neither in the test casettes, nor in a separate casette, when i mark the fixture with @pytest.mark.vcr
Describe the solution you'd like
I would like it to be possible to decorate fixtures with @pytest.mark.vcr() with the result of a casette being recorded for the individual fixtures, such taht i can use pytest-recording to record fixtures with scope="session"
Describe alternatives you've considered
if i use scope="function" the fixture setup requests are recorded in each test casette and the offline testing works.
The text was updated successfully, but these errors were encountered: