A small snippet for nicer PyTest's Parametrize
Project description
Nice Parametrize
Usage example:
from nice_parametrize import parametrize
@parametrize(["a", "b", "result"], {
"equal": [1, 1, True],
"unequal": [1, 2, False],
})
def my_test(a, b, result):
assert (a == b) is result
A small Python snippet that makes pytest.mark.parametrize
a little nicer to use.
pytest.mark.parametrize
has a nice feature called ids
that allows you to name your argument lists.
This is very useful for stating the intention of the tested case.
But the problem is that the names are given in a separate parameter, ids
,
so it is not easy to see at a glance which arguments match which case:
import pytest
@pytest.mark.parametrize(["a", "b", "result"], [
[1, 1, True],
[1, 2, False]],
ids=["equal", "unequal"])
def my_test(a, b, result):
assert (a == b) is result
This might get very cumbersome with a long parameter list and a lot of cases.
So instead, nice_parametrize
allows you to pass in a dict
that
maps between the ID of the argument list to the list itself.
This way it is clear which case match which arguments,
and it is easier to understand and debug your test.
Also supports additional keyword arguments to be passed to the underlying pytest.mark.parametrize
.
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
Hashes for pytest-nice-parametrize-1.0.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf1e874d83238bb9af1c4140c9f59caad6eee0ab0c2f4cb77b098989263c49d7 |
|
MD5 | 9a29104ee4b533a0252c95efe1d0046b |
|
BLAKE2b-256 | c0d8bafbfc69e86faed3041fe87b0eefb137619d5ec2d4af3dc63fa61e40a4f8 |