mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-08 16:53:23 +00:00
87 lines
2.4 KiB
ReStructuredText
87 lines
2.4 KiB
ReStructuredText
Installation
|
|
============
|
|
|
|
VCR.py is a package on `PyPI <https://pypi.python.org>`__, so you can install
|
|
with pip::
|
|
|
|
pip3 install vcrpy
|
|
|
|
Compatibility
|
|
-------------
|
|
|
|
VCR.py supports Python 3.9+, and `pypy <http://pypy.org>`__.
|
|
|
|
The following HTTP libraries are supported:
|
|
|
|
- ``aiohttp``
|
|
- ``boto3``
|
|
- ``http.client``
|
|
- ``httplib2``
|
|
- ``requests`` (>=2.16.2 versions)
|
|
- ``tornado.httpclient``
|
|
- ``urllib2``
|
|
- ``urllib3``
|
|
- ``httpx``
|
|
- ``httpcore``
|
|
|
|
Speed
|
|
-----
|
|
|
|
VCR.py runs about 10x faster when `pyyaml <http://pyyaml.org>`__ can use the
|
|
`libyaml extensions <http://pyyaml.org/wiki/LibYAML>`__. In order for this to
|
|
work, libyaml needs to be available when pyyaml is built. Additionally the flag
|
|
is cached by pip, so you might need to explicitly avoid the cache when
|
|
rebuilding pyyaml.
|
|
|
|
1. Test if pyyaml is built with libyaml. This should work::
|
|
|
|
python3 -c 'from yaml import CLoader'
|
|
|
|
2. Install libyaml according to your Linux distribution, or using `Homebrew
|
|
<http://mxcl.github.com/homebrew/>`__ on Mac::
|
|
|
|
brew install libyaml # Mac with Homebrew
|
|
apt-get install libyaml-dev # Ubuntu
|
|
dnf install libyaml-devel # Fedora
|
|
|
|
3. Rebuild pyyaml with libyaml::
|
|
|
|
pip3 uninstall pyyaml
|
|
pip3 --no-cache-dir install pyyaml
|
|
|
|
Upgrade
|
|
-------
|
|
|
|
New Cassette Format
|
|
~~~~~~~~~~~~~~~~~~~
|
|
|
|
The cassette format has changed in *VCR.py 1.x*, the *VCR.py 0.x*
|
|
cassettes cannot be used with *VCR.py 1.x*. The easiest way to upgrade
|
|
is to simply delete your cassettes and re-record all of them. VCR.py
|
|
also provides a migration script that attempts to upgrade your 0.x
|
|
cassettes to the new 1.x format. To use it, run the following command::
|
|
|
|
python3 -m vcr.migration PATH
|
|
|
|
The PATH can be either a path to the directory with cassettes or the
|
|
path to a single cassette.
|
|
|
|
*Note*: Back up your cassettes files before migration. The migration
|
|
*should* only modify cassettes using the old 0.x format.
|
|
|
|
New serializer / deserializer API
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
If you made a custom serializer, you will need to update it to match the
|
|
new API in version 1.0.x
|
|
|
|
- Serializers now take dicts and return strings.
|
|
- Deserializers take strings and return dicts (instead of requests,
|
|
responses pair)
|
|
|
|
Ruby VCR compatibility
|
|
----------------------
|
|
|
|
VCR.py does not aim to match the format of the Ruby VCR YAML files.
|
|
Cassettes generated by Ruby's VCR are not compatible with VCR.py.
|