A simple plugin to use with pytest
Project description
A simple plugin to use with pytest
This pytest plugin was generated with Cookiecutter along with @hackebrot’s cookiecutter-pytest-plugin template.
Features
Readable diffs for failed tests
Customizable diffs for your classes
Requirements
pytest
deepdiff
pprintpp
Installation
You can install “pytest-diff” via pip from PyPI:
$ pip install pytest-diff
Usage
class Person:
def __init__(self, name, age, favorites):
self.name = name
self.age = age
self.favorites = favorites
def test_person():
a = Person("Alice", age=21, favorites={"food": "spam", "movie": "Life of Brian"})
b = Person("Alice", age=21, favorites={"food": "eggs", "movie": "Life of Brian"})
assert a == b
Running pytest gives:
______________________________ test_person ______________________________
def test_person():
a = Person("Alice", age=21, favorites={'food': 'spam', 'movie': 'Life of Brian'})
b = Person("Alice", age=21, favorites={'food': 'eggs', 'movie': 'Life of Brian'})
> assert a == b
E assert
E <test_person.Person object at 0x7fa326d769e8>
E ==
E <test_person.Person object at 0x7fa326d76be0>
E {'values_changed': {"root.favorites['food']": {'new_value': 'spam', 'old_value': 'eggs'}}}
examples/test_person.py:11: AssertionError
To customize diffs for a specific type:
import pytest_diff
from tests import utils
@pytest_diff.dispatcher.dispatch
def diff(x: utils.Container, y: utils.Container):
return ["My custom diff", "has multiple lines."]
def test_container_unequal():
c1 = utils.Container(["a", "b"])
c2 = utils.Container(["d", "e", "f"])
assert c1 == c2
Contributing
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.
License
Distributed under the terms of the MIT license, “pytest-diff” is free and open source software
Issues
If you encounter any problems, please file an issue along with a detailed description.
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
Built Distribution
Hashes for pytest_diff-0.1.8-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a6994276e46473b5a13a35b6476ce8104572d7500ba4e5d8141be803ff0095d0 |
|
MD5 | 7be4b1f2b9f324a6ce7f698b5298ebdb |
|
BLAKE2b-256 | 6075ae676c2c753443202a47dc3d27f1d706123c435a2a38f16a877024118b5c |