Easy assertion with expected results saved to yaml files.
- Creates yaml files for expected test results , a.k.a. tape.
- Creates separate tape for each test file. Each tape stores results for all tests that have utilised tape fixture.
- supports parametrized tests, as long as all parameters can be jsonified.
- Hash functions are used to store and identify params.
- Expected results are stored as dictionaries in yaml, so that they can be compared using tolerances.
- python >= 3.6
You can install "pytest-tape" via pip from PyPI:
$ pip install pytest-tape
Just use tape
fixture in any of the tests and assert dictionary of results with it.
def test_correctness(tape):
result_of_calc = {
'a': [1,2,3], 'b':'Another_Random_Result', 'c': 45.99
}
assert tape == result_of_calc
First time the tests fails, tape writes to yaml file. Second and all subsequent times you run the test - it compares the result with what is on tape.
Contributions are very welcome. Tests can be run with tox, please ensure the coverage at least stays the same before you submit a pull request.
Distributed under the terms of the MIT license, "pytest-tape" is free and open source software
If you encounter any problems, please file an issue along with a detailed description.
This pytest plugin was generated with Cookiecutter along with @hackebrot's cookiecutter-pytest-plugin template.