Skip to main content

A py.test plugin recording and comparing test output.

Project description
Testing code that generates output can be tedious to maintain
pytest-datarecorder aims to simplify this task.


To install pytest-datarecorder:

pip install pytest-datarecorder


To make it easy to use in with py.test the DataRecorder object can be injected into a test function by using the datarecorder fixture.


def test_this_function(datarecorder):

        data={'a':1, 'b':2}, recording_file="test/data/recording.json")

The data passed will be serialized to JSON since the recording file has a .json extension. If data changes, we will get an exception containing a diff with what changed. If we want to accept the changes we simply delete the recording and run the code again.

Relase new version

  1. Edit NEWS.rst and wscript (set correct VERSION)

  2. Run

    ./waf upload

Source code

The main functionality is found in src/ and the corresponding unit test is in test/ if you want to play/modify/fix the code this would, in most cases, be the place to start.

Developer Notes

We try to make our projects as independent as possible of a local system setup. For example with our native code (C/C++) we compile as much as possible from source, since this makes us independent of what is currently installed (libraries etc.) on a specific machine.

To “fetch” sources we use Waf ( augmented with dependency resolution capabilities:

The goal is to enable a work-flow where running:

./waf configure
./waf build --run_tests

Configures, builds and runs any available tests for a given project, such that you as a developer can start hacking at the code.

For Python project this is a bit unconventional, but we think it works well.


The tests will run automatically by passing --run_tests to waf:

./waf --run_tests

This follows what seems to be “best practice” advise, namely to install the package in editable mode in a virtualenv.


Project details

Download files

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

Built Distribution

pytest_datarecorder-1.3.0-py2.py3-none-any.whl (6.9 kB view hashes)

Uploaded py2 py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page