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.4.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.4-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pytest_fixtures_fixtures-0.3.4.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.4.tar.gz
Algorithm Hash digest
SHA256 fdfc71d4aad655a3b22eb664089ee09456661384ea03708c245cf5fab7aabc77
MD5 f48d2fab25485aac3ce0c823670e74ee
BLAKE2b-256 c95b95e57fb26be1c507d4b5654c47d86053f0cfbc055cdf34e0691b58b75dea

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_fixtures_fixtures-0.3.4.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.4-py3-none-any.whl.

File metadata

File hashes

Hashes for pytest_fixtures_fixtures-0.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 052641bdc4fcd73d81343f74faf3a783dccacded4e408a765bd35d5e051c454b
MD5 fe0b085f3f55b5fec03f33f464676a8a
BLAKE2b-256 3876481adc65323f48519323425da89851d78eff482406605fd0dabfe5372f97

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_fixtures_fixtures-0.3.4-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