Skip to main content

pytest-datafixtures

https://github.com/idlesign/pytest-datafixtures

PyPI - Version License Coverage

Description

Data fixtures for pytest made simple

Offers fixtures for your tests to simplify data fixtures access. Makes use of Python's native Path objects.

Data fixtures (files) expected to be stored in datafixtures directory next to your test modules:

tests
|-- datafixtures
|   |-- mydatafixture.xml
|   |-- mydata.bin   
|-- test_basic.py
|
|-- subdirectory
|---- datafixtures
|     |-- payload.json
|     |-- cert.cer
|---- test_other.py

Requirements

  • Python 3.10+

Fixtures

  • datafix_dir - Path object for data fixtures directory from the current test module's directory.
  • datafix - Path object for a file in data fixtures directory with the same name as the current test function.
  • datafix_read - Returns text contents of a data fixture by name.
  • datafix_readbin - Returns binary contents of a data fixture by name.
  • datafix_dump - Allows data dumping for further usage.

datafix_dir

Access data fixtures directory:

def test_me(datafix_dir):

    # datafix_dir returns a Path object.
    assert datafix_dir.exists()

    # Gather data fixtures filenames.
    files = list(f'{file.name}' for file in datafix_dir.iterdir())

    # Read some fixture as text.
    # The same as using `datafix_read` fixture (see below).
    filecontent = (datafix_dir / 'expected.html').read_text()

    # Or read binary.
    filecontent = (datafix_dir / 'dumped.bin').read_bytes()

datafix

Access a data fixture with test name:

def test_me(datafix):
    # Read datafixtures/test_me.txt file
    filecontents = datafix.with_suffix('.txt').read_text()

datafix_read

Access text contents of a data fixture by name:

def test_datafix_read(datafix_read):
    # Read datafixtures/expected.html file
    filecontents = datafix_read('expected.html')

    # Read encoded and represent as an StringIO object.
    encoded_io = datafix_read('test_datafix.txt', encoding='cp1251', io=True)

datafix_readbin

Access binary contents of a data fixture by name:

def test_datafix_read(datafix_readbin):
    # Read datafixtures/dumped.bin file
    binary = datafix_readbin('dumped.bin')

    # Read binary and represent as an BytesIO object.
    bin_io = datafix_readbin('dumped.bin', io=True)

datafix_dump

Dump data for later usage as a datafixture:

def test_datafix_dump(datafix_dump):
    # Dump text
    dumped_filepath = datafix_dump('sometext', encoding='cp1251')
    
    # Dump binary
    dumped_filepath = datafix_dump(b'\x12')

Release files for pytest-datafixtures 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pytest-datafixtures 1.1.0
File Size Uploaded
pytest_datafixtures-1.1.0.tar.gz 3.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pytest-datafixtures 1.1.0
File Interpreter ABI Platform
pytest_datafixtures-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 7.8 kB

Release files / pytest_datafixtures-1.1.0.tar.gz

Download URL pytest_datafixtures-1.1.0.tar.gz
Size 3.5 kB
Tags Source
SHA-256 checksum
How to use checksums
66d519bfb03e96b6b6f3f08e688adeb39b098ff3ad0578f4d42fc79408a909d5
BLAKE2b-256 checksum
How to use checksums
b30aa16756b9700d6e711929c0c2eb8bb5219005c632871c41140fff39971391
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.6

Release files / pytest_datafixtures-1.1.0-py3-none-any.whl

Download URL pytest_datafixtures-1.1.0-py3-none-any.whl
Size 4.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e552dccb1232a8953c21b78921e8bbef05cb5ab362858554ccdc5aab50ed71df
BLAKE2b-256 checksum
How to use checksums
ed6f39d3be6ed63b92320c8d9b96871a103c889bb10a851b689878baeb952062
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.6

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files

1.0.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page