Pattern matching helper classes designed to allow for testing of complex data structures in a readable and logical format
Project description
Jestspectation
Pattern matching helper classes designed to allow for testing of complex data structures in a readable and logical format.
The design is inspired by the expect
system from JavaScript's Jest testing
framework.
import jestspectation as expect
assert {
"a": 1,
"b": 2,
"c": 3.0,
} == {
"a": 1,
"b": expect.Any(int),
"c": expect.FloatApprox(2.5, magnitude=0.5)
}
Installation
pip install jestspectation
Usage with Pytest
The library can be used as a pytest plugin, which can give access to much more detailed error messages when assertions fail.
This should result in output similar to the following
def test_goodbye():
> assert 1 == expect.Any(float)
E assert Type mismatch
E Expected any object of type float
E Received 1 (int)
These advanced completions can also be used for most standard Python objects
by wrapping the expected values in an Equals
. For example:
def test_lists():
> assert expect.Equals([1, 2, 3, 4]) == [1, 2, 3, 5, 6]
E assert [1, 2, 3, 4] == [1, 2, 3, 5, 6]
E !! [3] 4 == 5
E Value mismatch
E Expected 4
E Received 5
E ++ [4] 6
To automatically use Jestspectation's diff parsing, you can configure Jestspectation.
import jestspectation
jestspectation.configure().pytest_all_diffs = True
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 jestspectation-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08e47615de84fbc14ac1de199853063861c42224a2724cffcc62553f1e6a9691 |
|
MD5 | cfd129f97fa7bf435b13fd9b9d30461d |
|
BLAKE2b-256 | fc16cdef1fcf298b91f4ee8160fa0f944e96dcc49f438a0cc28362d7ffaed304 |