Skip to main content

pytest decorator for parametrizing test cases in a dict-way

Project description

image image image

GitHub Workflow Status pre-commit image

pytest-parametrize

pytest decorator for parametrizing test cases in a dict-way. It is an alternative for the pytest.mark.parametrize.

Usage

Decorate test function with test cases defined as a dictionary.

Example:

Simple

import pytest
from pytest_parametrize import parametrize

@parametrize(
    {
        "test-case-1": {"a": 1, "b": 2, "c": 3},
        "test-case-2": {"a": 2, "b": 3, "c": 5},
        "test-case-3": [
            {"a": 3, "b": 5, "c": 8},
            {"a": 5, "b": 8, "c": 13},
            {"a": 8, "b": 13, "c": 21},
            {"a": 0, "b": 0, "c": 1, "marks": pytest.mark.xfail},
        ],
    },
)
def test_something(a, b, c):
    assert a + b == c

Or more complex one:

from pytest_parametrize import parametrize

@parametrize(
    {
        "a=1": {"a": 1},
        "a=2": {"a": 2},
    }
)
@parametrize(
    {
        "b=1": {"b": 1},
        "b=2": {"b": 2},
    }
)
def test_parametrize__when_complex_structure(a: int, b: int):
    assert a * b > 0

Description

Decorator takes dict, which:

  • keys define names of the test cases, and
  • values define named arguments in dict manner (or list of such dicts), which are passed to the decorated test function.

Installation

pip

pip install pytest-parametrize

poetry

poetry add pytest-parametrize

Collaboration

Test & coverage

pytest -vvv tests --cov=pytest_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_parametrize-1.6.0.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pytest_parametrize-1.6.0-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

File details

Details for the file pytest_parametrize-1.6.0.tar.gz.

File metadata

  • Download URL: pytest_parametrize-1.6.0.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.3 CPython/3.14.3 Linux/6.17.0-1008-azure

File hashes

Hashes for pytest_parametrize-1.6.0.tar.gz
Algorithm Hash digest
SHA256 d647c415bd5be28130499f529b6424cf49fd6b5bf2581ffed94300abc01f0c2a
MD5 3b5f87b6ed30ff8cc4fcff292fe26518
BLAKE2b-256 85b31eecbc7cd2fd54f18e9b27e0b5bacac22ed69af125b31c5144efcfe12a39

See more details on using hashes here.

File details

Details for the file pytest_parametrize-1.6.0-py3-none-any.whl.

File metadata

  • Download URL: pytest_parametrize-1.6.0-py3-none-any.whl
  • Upload date:
  • Size: 4.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.3 CPython/3.14.3 Linux/6.17.0-1008-azure

File hashes

Hashes for pytest_parametrize-1.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 775d7367369840eaa0358c03e869464e0627b39dd94750d242e880e6f081dab3
MD5 b00bdfa624561b025b3078ab1dd3dc7f
BLAKE2b-256 95e30722a455d5e3ba8d9fa29f2e314cf3feffa060c4e78170f5576c9915624b

See more details on using hashes here.

Supported by

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