pytest-recording
VCR.py
pytest-recording | VCR.py | |
---|---|---|
1 | 6 | |
382 | 2,614 | |
2.1% | - | |
6.7 | 8.9 | |
3 days ago | 8 days ago | |
Python | Python | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
pytest-recording
-
Two Methods for Testing HTTPS API Calls with Python and pytest and also Communicating with the In-laws
An alternate approach involves using VCR.py, a tool that records HTTP interactions in YAML files, then intercepts future HTTP requests and plays back the recorded responses. In this tutorial, we will use pytest-vcr to interface with VCR.py, although pytest-recording is another good option for doing the same.
VCR.py
-
Please recommend a good API Mocking tool
I made a library for this: https://github.com/kevin1024/vcrpy
-
3 Ways to Unit Test REST APIs in Python
Now it’s finally the time to discuss our last option. I have only found about it quite recently, frankly. I’ve been using mocks for a long time and always had some problem with them. VCR.py is a library that simplifies a lot the tests that make HTTP requests.
- My Python testing style guide – Stargirl (Thea) Flowers
-
Two Methods for Testing HTTPS API Calls with Python and pytest and also Communicating with the In-laws
Unfortunately, VCR.py only supports a certain number of HTTP client libraries. Thankfully, some very popular implementations are included: the Python built-in urllib and http.client, as well as requests, urllib3, and aiohttp. And, while it may not be listed in the docs at the time of this writing, the changelog notes that HTTPX is also supported. Sadly, pycurl is not supported.
-
Magic numbers for Verify?
I don't normally work in Python, so I'm not used to writing mocks. You should be able to mock the client, but if that is too much you might look into something like VCR.py which records underlying HTTP interactions and then plays them back in further tests. (Make sure to redact any API keys from the cassettes though.)
-
playback-proxy - record communication between client and server and play it back later during testing
https://betamax.readthedocs.io/en/latest/ https://github.com/kevin1024/vcrpy
What are some alternatives?
responses - A utility for mocking out the Python Requests library.
Schemathesis - Automate your API Testing: catch crashes, validate specs, and save time
mock - The Python mock library
betamax - A VCR imitation designed only for python-requests.
tavern - A command-line tool and Python library and Pytest plugin for automated testing of RESTful APIs, with a simple, concise and flexible YAML-based syntax
httpretty - Intercept HTTP requests at the Python socket level. Fakes the whole socket module
pytest-flask-sqlalchemy - A pytest plugin for preserving test isolation in Flask-SQLAlchemy using database transactions.
Moto - A library that allows you to easily mock out tests based on AWS infrastructure.
openverse-catalog - Identifies and collects data on cc-licensed content across web crawl data and public apis.
freezegun - Let your Python tests travel through time