Skip to main content

Automatically mock your HTTP interactions to simplify and speed up testing

Project description

PyPI Python versions Build Status Code Coverage Status Join the chat at https://gitter.im/kevin1024/vcrpy


vcr.py logo

This is a Python version of Ruby’s VCR library.

Source code

https://github.com/kevin1024/vcrpy

Documentation

https://vcrpy.readthedocs.io/

Rationale

VCR.py simplifies and speeds up tests that make HTTP requests. The first time you run code that is inside a VCR.py context manager or decorated function, VCR.py records all HTTP interactions that take place through the libraries it supports and serializes and writes them to a flat file (in yaml format by default). This flat file is called a cassette. When the relevant piece of code is executed again, VCR.py will read the serialized requests and responses from the aforementioned cassette file, and intercept any HTTP requests that it recognizes from the original test run and return the responses that corresponded to those requests. This means that the requests will not actually result in HTTP traffic, which confers several benefits including:

  • The ability to work offline

  • Completely deterministic tests

  • Increased test execution speed

If the server you are testing against ever changes its API, all you need to do is delete your existing cassette files, and run your tests again. VCR.py will detect the absence of a cassette file and once again record all HTTP interactions, which will update them to correspond to the new API.

Usage with Pytest

There is a library to provide some pytest fixtures called pytest-recording https://github.com/kiwicom/pytest-recording

License

This library uses the MIT license. See LICENSE.txt for more details

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vcrpy-8.1.1.tar.gz (85.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vcrpy-8.1.1-py3-none-any.whl (42.4 kB view details)

Uploaded Python 3

File details

Details for the file vcrpy-8.1.1.tar.gz.

File metadata

  • Download URL: vcrpy-8.1.1.tar.gz
  • Upload date:
  • Size: 85.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for vcrpy-8.1.1.tar.gz
Algorithm Hash digest
SHA256 58e3053e33b423f3594031cb758c3f4d1df931307f1e67928e30cf352df7709f
MD5 701357461f72489f0153abde9163d54e
BLAKE2b-256 b307bcfd5ebd7cb308026ab78a353e091bd699593358be49197d39d004e5ad83

See more details on using hashes here.

File details

Details for the file vcrpy-8.1.1-py3-none-any.whl.

File metadata

  • Download URL: vcrpy-8.1.1-py3-none-any.whl
  • Upload date:
  • Size: 42.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for vcrpy-8.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2d16f31ad56493efb6165182dd99767207031b0da3f68b18f975545ede8ac4b9
MD5 b3ff710b92e905614d8385fa3240d1d0
BLAKE2b-256 3ad7f79b05a5d728f8786876a7d75dfb0c5cae27e428081b2d60152fb52f155f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page