Skip to main content

Handy fixtues to access your fixtures from your _pytest_ tests.

Project description

pytest fixtures fixtures

Fixtures, for fixtures. Handy fixtures to access your test fixtures from your pytest tests.

Installation

pip install pytest-fixtures-fixtures

Fixture Usage Guide

This plugin provides several fixtures to help you read and interact with test fixture files in your pytest tests.

Everything starts whith where you define your fixtures, by default, this plugin expects your fixtures to live in a folder named tests/fixtures from the root of your project. For example:

src
├── script.py
tests/
├── fixtures/
│   ├── users_data.txt
│   ├── app_config.json
│   └── error_logs.jsonl
└── test_script.py

If you wanted to read the users_data.txt file, you would use the read_fixture fixture:

def test_users_data(read_fixture):
    data = read_fixture("users_data.txt")
    assert "Alice" in data

If you wanted to read the app_config.json file, you would use the read_json_fixture fixture:

def test_app_config(read_json_fixture):
    config = read_json_fixture("app_config.json")
    assert config["database"]["host"] == "localhost"
    assert config["debug"] is True

There are more fixtures available to read different types of fixture files, including providing your own deserialization function. You can read the Fixtures Usage docs for more information.

Configure default fixtures directory

You can configure the default fixtures directory in several ways, the most common one is by redefining the fixtures_path fixture in your tests:

@pytest.fixture
def fixtures_path(tmp_path):
    """Use a temporary directory for fixtures."""
    path = tmp_path / "my_fixtures"
    path.mkdir()
    return path

You can read more about how to configure the default fixtures directory using configuration files or CLI in the Configuration docs.

Use fixtures to parametrize your tests

This plugin also provides a decorator to parametrize your tests using fixture files, for example:

id,a,b,c
add_positive,1,2,3
add_negative,1,-1,0
add_zero,5,0,5
@parametrize_from_fixture("data.csv")
def test_addition(a, b, c):
    assert int(a) + int(b) == int(c)

Will be expanded into three tests, each with different values for a, b, and c based on the data in the fixture file.

You can read more about how to use the parametrize_from_fixture decorator in the Parametrize docs.

A good example

pytest-fixtures-fixtures is tested using itself, you can see the tests in the tests directory.

Documentation

Why Use This Plugin?

  • Clean separation of test data and test logic
  • Multiple formats supported with consistent API
  • Automatic validation and clear error messages
  • Flexible configuration for different environments
  • Parametrization support with custom test IDs

Contributing

We welcome contributions! Please see our contributing guidelines and feel free to submit issues or pull requests.

License

This project is licensed under the MIT License - see the LICENSE file for details.

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_fixtures_fixtures-0.3.3.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

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

pytest_fixtures_fixtures-0.3.3-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

Details for the file pytest_fixtures_fixtures-0.3.3.tar.gz.

File metadata

  • Download URL: pytest_fixtures_fixtures-0.3.3.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pytest_fixtures_fixtures-0.3.3.tar.gz
Algorithm Hash digest
SHA256 68ec6ab41fc8d984bec3656c464cceff4c26ddf69bcaabbeab0630b06676e80c
MD5 81fb7daf4e857f6b3d941c0ba5291841
BLAKE2b-256 14fbee3a25836a55cb7a30c28262614712e3a4a4cb3c4024fe8093278892ed6d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_fixtures_fixtures-0.3.3.tar.gz:

Publisher: release.yml on fferegrino/pytest-fixtures-fixtures

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytest_fixtures_fixtures-0.3.3-py3-none-any.whl.

File metadata

File hashes

Hashes for pytest_fixtures_fixtures-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 34fb649a823b38619067e9f990580611bed70ab6a559f8ff87df8ec679ef3cea
MD5 8464a8cafda8123d41b55a646740bc47
BLAKE2b-256 ead62408b95651bbd38ebb1436c18e374700be7bfbf022e5d52f3d9da9184bc1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_fixtures_fixtures-0.3.3-py3-none-any.whl:

Publisher: release.yml on fferegrino/pytest-fixtures-fixtures

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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