kevin1024 / vcrpy

Automatically mock your HTTP interactions to simplify and speed up testing

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Compatibility with starlette / fastapi TestClient

johnraz opened this issue · comments

Hi!

I've been facing some issues with a test suite that makes use of Starlette's TestClient, which is also used by FastAPI.

Important note, I'm using pytest with pytest-recording.

There are 2 types of issues I see, and both are random and not easily reproducible:

  1. cassettes are sometimes not recorded when running the full test suite but are when running the test alone.
  2. tests are failing when running test2, and trying to access the cassette in test2, while test2 is not even using use_cassette... This mostly happens in parametrized tests but I'm not sure this is the "key" reason.

I think the problem mostly comes from the fact that the TestClient starts an async loop behind the scene which seems to hit the thread safety problem described here: #295, do you think it is indeed related?

Thanks for you time and for the otherwise very useful project 😃

Hi, I've hit similar problem. Did you succeed to resolve this maybe?

No sadly not - it makes vcrpy hard to use with Starlette test client.