awtkns / fastapi-crudrouter

A dynamic FastAPI router that automatically creates CRUD routes for your models
https://fastapi-crudrouter.awtkns.com
MIT License
1.34k stars 156 forks source link

Add schemathesis tests #141

Open DanLipsitt opened 2 years ago

DanLipsitt commented 2 years ago

This PR adds automated Schemathesis tests to the test suite. Most of the tests currently fail, and I believe this is due to a bug in Schemathesis, described in https://github.com/schemathesis/schemathesis/issues/1335. I see that the author of Schemathesis has kindly offered to help get it working with fastapi-crudrouter. I'll update the schemathesis ticket and hopefully this PR will help both projects.

vercel[bot] commented 2 years ago

This pull request is being automatically deployed with Vercel (learn more).
To see the status of your deployment, click below or on the icon next to each commit.

🔍 Inspect: https://vercel.com/flortz/fastapi-crudrouter/4RVwLWcGLBPGZCGrrRHMXEyThDAU
✅ Preview: https://fastapi-crudrouter-git-fork-danlipsitt-105schemat-b57fbd-flortz.vercel.app

DanLipsitt commented 2 years ago

Current CI failure seems to be due to a bug in pytest 7.0.0 (https://github.com/pytest-dev/pytest/pull/9609). Run tests again when 7.0.1 is out (should be very soon) or work around it in dev.requirements.txt.

DanLipsitt commented 2 years ago

I added the pytest workaround. Any remaining failures should be due to the Schemathesis bug mentioned above.

awtkns commented 2 years ago

Thanks for this @DanLipsitt, great work! 🚀

Stranger6667 commented 2 years ago

Thank you so much @DanLipsitt for bringing this PR and reporting the issue to Schemathesis! @awtkns thank you for reviewing & approving the changes :)

I added a small suggestion in the comment above which makes the tests work. They took quite some time to run on my machine (~7 minutes) but showed quite a lot of things that might require attention. I'd also suggest adding data_generation_methods=schemathesis.DataGenerationMethod.all() to schemathsis.from_dict so it also executes negative test scenarios, however they are even slower.

Let me know if I can help with anything :) I'd be happy elaborate

DanLipsitt commented 2 years ago

Updated per @Stranger6667's suggestion.

vercel[bot] commented 1 year ago

Someone is attempting to deploy a commit to a Personal Account owned by @awtkns on Vercel.

@awtkns first needs to authorize it.