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.2.0.tar.gz (88.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.2.0-py3-none-any.whl (43.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: vcrpy-8.2.0.tar.gz
  • Upload date:
  • Size: 88.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.2.0.tar.gz
Algorithm Hash digest
SHA256 0315f92a397ad8ceca431b6ffa8d58fcb9bb20796127d9b576fdc389cf83ddd0
MD5 21c7164f106e55feb4305c57af14d186
BLAKE2b-256 b72807d5ca0e4c21114f85ee98c030a4e20ab48231ca34f643644827c2c03379

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vcrpy-8.2.0-py3-none-any.whl
  • Upload date:
  • Size: 43.8 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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c566521fd2312c79919673c0cc68fb16cd4be7bb782e7d853000cb8521675eee
MD5 7aaf7d6a0d2528e5455743c31583a103
BLAKE2b-256 5ca4cc695b7efb0b93437d0b5712942ac59a5cacb4234651eff22466388813fc

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