Skip to main content

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


Download files

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

Source Distribution

pytest-nice-parametrize-1.0.1.tar.gz (2.3 kB view details)

Uploaded Source

File details

Details for the file pytest-nice-parametrize-1.0.1.tar.gz.

File metadata

  • Download URL: pytest-nice-parametrize-1.0.1.tar.gz
  • Upload date:
  • Size: 2.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.1 pkginfo/1.7.0 requests/2.23.0 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.1

File hashes

Hashes for pytest-nice-parametrize-1.0.1.tar.gz
Algorithm Hash digest
SHA256 cf1e874d83238bb9af1c4140c9f59caad6eee0ab0c2f4cb77b098989263c49d7
MD5 9a29104ee4b533a0252c95efe1d0046b
BLAKE2b-256 c0d8bafbfc69e86faed3041fe87b0eefb137619d5ec2d4af3dc63fa61e40a4f8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page