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.4.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for pytest_param_files-0.3.4.tar.gz
Algorithm Hash digest
SHA256 6c0c324f9d91bd16a5d63ab5bb78bd2d19ca5c6f2b68b6acbc4ae61fb1b6893d
MD5 8bf4e044a5a8c63cbeb360da96a1266e
BLAKE2b-256 e15a71ee79724b70a29d7d72d555ed1ed75e2c347b17fece7098ffb968c0d869

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytest_param_files-0.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 9c5f79db56ee2dfbdd353cd149fb561ad66d4d787584c1e67c1798b28048db92
MD5 0e2a66e410f29a2bf702362c69acb287
BLAKE2b-256 653aae69c4f6e45541a35ba37b629ca5dcdd0453b4e4b63d7f70de3e7da7c0dd

See more details on using hashes here.

Supported by

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