Skip to main content

Create pytest parametrize decorators from external files.

Project description

pytest-param-files

PyPI

A small package to generate parametrized pytests from external files.

Simply create a text file with the following (dot) format:

[name1] description
.
input content
.
expected output content
,

[name2] description
.
input content
.
expected output content
,

Then, use the param_file pytest marker to create a parametrized test:

from pathlib import Path
import pytest

import my_function

PATH = Path(__file__).parent.joinpath("test_file.txt")

@pytest.mark.param_file(PATH, fmt="dot")
def test_function(file_params):
    assert my_function(file_params.content) == file_params.expected

and the output will be:

$ pytest -v test_file.py
...
test_file.py::test_function[1-name1] PASSED
test_file.py::test_function[8-name2] FAILED

Alternatively use the assert_expected method, which will can handle more rich assertion features:

@pytest.mark.param_file(PATH, fmt="dot")
def test_function(file_params):
    actual = my_function(file_params.content)
    assert file_params.assert_expected(actual, rstrip=True)
$ pytest -v test_file.py
...
test_file.py::test_function[1-name1] PASSED
test_file.py::test_function[8-name2] FAILED
...
E       AssertionError: Actual does not match expected
E       --- /path/to/test_file.txt:8
E       +++ (actual)
E       @@ -1 +1 @@
E       -content
E       +other

Installation

Install from PyPI:

$ pip install pytest-param-files

or install locally (for development):

$ pip install -e .

Regenerating expected output on failures

EXPERIMENTAL

Running pytest with the --regen-file-failure option will regenerate the parameter file with actual output, if any test fails.

Other formats

TODO ...

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_param_files-0.3.5.tar.gz (7.7 kB view details)

Uploaded Source

Built Distribution

pytest_param_files-0.3.5-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

Details for the file pytest_param_files-0.3.5.tar.gz.

File metadata

  • Download URL: pytest_param_files-0.3.5.tar.gz
  • Upload date:
  • Size: 7.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.28.1

File hashes

Hashes for pytest_param_files-0.3.5.tar.gz
Algorithm Hash digest
SHA256 33e5b7ef41a7e89d9c04749156062701d9a4ef39fa0805741adb4f31765a6da5
MD5 48993f1155932122f9d1c935df1fdcde
BLAKE2b-256 240b0207aa6bef94dacddbf8c22f209aefbb1b9c3cc74bfeea14553a604b1451

See more details on using hashes here.

File details

Details for the file pytest_param_files-0.3.5-py3-none-any.whl.

File metadata

File hashes

Hashes for pytest_param_files-0.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 2a7a9f19b086ee4c412d19b210c47b8285b8d4f20a6fbf9a207b34324a59c05c
MD5 167de1050d0a1ecee50e4fb1c023aabc
BLAKE2b-256 af8288b581c932734f7147802fd49ccc0e97ecc3000380c1e7c8f50af04d85ff

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