.. image:: https://travis-ci.com/gjeusel/pytest-vcrpandas.svg?branch=master
:target: https://travis-ci.com/gjeusel/pytest-vcrpandas
.. image:: https://readthedocs.org/projects/pytest-vcrpandas/badge/?version=latest
:target: http://pytest-vcrpandas.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
.. image:: https://codecov.io/gh/gjeusel/pytest-vcrpandas/branch/master/graph/badge.svg
:target: https://codecov.io/gh/gjeusel/pytest-vcrpandas
.. image:: https://badge.fury.io/py/pytest-vcrpandas.svg
:target: https://pypi.python.org/pypi/pytest-vcrpandas/
:alt: Pypi package
===============================
pytest-vcrpandas
===============================
Combine `vcrpy <https://github.com/kevin1024/vcrpy>`_ with
`pandas <https://github.com/pandas-dev/pandas>`_ to not only mock your HTTP interactions,
but also tests your post-processing work to get a pandas DataFrame.
Usage
-----
.. code:: python
# test_meteo_client.py
def test_meteo_get_wind_speed(vcrpandas, client):
start = pd.Timestamp('2018-01-01', tz='CET')
end = pd.Timestamp('2018-02-01', tz='CET')
with vcrpandas("meteo_get_wind_speed") as recorder:
df = client.get_wind_speed(start, end)
recorder(df)
.. code:: bash
# call pytest for the first time to generate samples
> pytest --vcr-record="new_episodes"
# you can now replay it:
> pytest
Behind the hood, 2 files are generated by the first run:
- a *meteo_get_wind_speed.yaml*, which is the reponse obtained by
the first HTTP interaction.
- a *meteo_get_wind_speed.pickle* that serve to compare the formatting from
the mocked response to the pandas DataFrame, types included.
Installation
------------
.. code:: bash
pip install pytest-vcrpandas
Advanced Usage
--------------
To configure VCR, here is how to procee:
.. code:: python
@pytest.fixture
def my_vcrpandas(vcrpandas):
custom_vcr_config = dict(
serializer='json',
cassette_library_dir='fixtures/myclient/cassettes',
match_on=['uri', 'method'],
filter_headers=['authorization'], # filter information from HTTP Headers
filter_query_parameters=['api_key'], # filter information from HTTP query string
filter_post_data_parameters=['client_secret'], # filter information from HTTP post data
)
vcrpandas.config.update(custom_vcr_config)
return vcrpandas
def test_mysupertest(my_vcrpandas):
with my_vcrpandas("random_bucket_name") as recorder:
recorder(CL.get_stuff())
Refere to `VCR configuration <https://vcrpy.readthedocs.io/en/latest/configuration.html`_ and
`VCR Advanced Features <https://vcrpy.readthedocs.io/en/latest/advanced.html>`_ to get the
full list of options.
:target: https://travis-ci.com/gjeusel/pytest-vcrpandas
.. image:: https://readthedocs.org/projects/pytest-vcrpandas/badge/?version=latest
:target: http://pytest-vcrpandas.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
.. image:: https://codecov.io/gh/gjeusel/pytest-vcrpandas/branch/master/graph/badge.svg
:target: https://codecov.io/gh/gjeusel/pytest-vcrpandas
.. image:: https://badge.fury.io/py/pytest-vcrpandas.svg
:target: https://pypi.python.org/pypi/pytest-vcrpandas/
:alt: Pypi package
===============================
pytest-vcrpandas
===============================
Combine `vcrpy <https://github.com/kevin1024/vcrpy>`_ with
`pandas <https://github.com/pandas-dev/pandas>`_ to not only mock your HTTP interactions,
but also tests your post-processing work to get a pandas DataFrame.
Usage
-----
.. code:: python
# test_meteo_client.py
def test_meteo_get_wind_speed(vcrpandas, client):
start = pd.Timestamp('2018-01-01', tz='CET')
end = pd.Timestamp('2018-02-01', tz='CET')
with vcrpandas("meteo_get_wind_speed") as recorder:
df = client.get_wind_speed(start, end)
recorder(df)
.. code:: bash
# call pytest for the first time to generate samples
> pytest --vcr-record="new_episodes"
# you can now replay it:
> pytest
Behind the hood, 2 files are generated by the first run:
- a *meteo_get_wind_speed.yaml*, which is the reponse obtained by
the first HTTP interaction.
- a *meteo_get_wind_speed.pickle* that serve to compare the formatting from
the mocked response to the pandas DataFrame, types included.
Installation
------------
.. code:: bash
pip install pytest-vcrpandas
Advanced Usage
--------------
To configure VCR, here is how to procee:
.. code:: python
@pytest.fixture
def my_vcrpandas(vcrpandas):
custom_vcr_config = dict(
serializer='json',
cassette_library_dir='fixtures/myclient/cassettes',
match_on=['uri', 'method'],
filter_headers=['authorization'], # filter information from HTTP Headers
filter_query_parameters=['api_key'], # filter information from HTTP query string
filter_post_data_parameters=['client_secret'], # filter information from HTTP post data
)
vcrpandas.config.update(custom_vcr_config)
return vcrpandas
def test_mysupertest(my_vcrpandas):
with my_vcrpandas("random_bucket_name") as recorder:
recorder(CL.get_stuff())
Refere to `VCR configuration <https://vcrpy.readthedocs.io/en/latest/configuration.html`_ and
`VCR Advanced Features <https://vcrpy.readthedocs.io/en/latest/advanced.html>`_ to get the
full list of options.
Metadata
Release files for pytest-vcrpandas 0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pytest-vcrpandas-0.0.2.tar.gz | 7.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pytest_vcrpandas-0.0.2-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size: 13.0 kB
Release files / pytest-vcrpandas-0.0.2.tar.gz
| Download URL | pytest-vcrpandas-0.0.2.tar.gz |
|---|---|
| Size | 7.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
eb0317b29dcdd89e88d8df5d2e4b4cb863dd869a627e019b92aae7651f926c81
|
|
BLAKE2b-256 checksum How to use checksums |
c24624290ce971f04b4694ecd6b5c7d55b64d323277221bbd3a753ea9d23401a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/3.6.3
|
Release files / pytest_vcrpandas-0.0.2-py2.py3-none-any.whl
| Download URL | pytest_vcrpandas-0.0.2-py2.py3-none-any.whl |
|---|---|
| Size | 5.3 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
14882a5c79eb25c3ba1441703c2c4da27d71e2c76c2d9f5ff3adeeed7638111c
|
|
BLAKE2b-256 checksum How to use checksums |
4fc59db9ba5a4e55ee8ef6fa837f636f0ec61173699002ad108b76b2fc7ca718
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/3.6.3
|