Skip to main content

pytest-inject

pytest-inject is a pytest plugin that allows you to inject arguments into fixtures and parametrized tests using pytest command-line options, effectively transforming your existing test suite into a set of dynamic debugging tools, without the need to modify or copy any test code.

pytest-inject is the solution when you temporarily modify tests to debug your application, or when your debugging scripts are based on existing tests.

Installation

You can install pytest-inject via pip:

pip install pytest-inject

Usage Docs

pytest-inject provides main command-line options:

  • --inject-json

    Allows you to inject arguments using a JSON string or a path to a JSON file.

    Usage with JSON string:

    pytest --inject-json '{"my_arg": "my_value", "count": 42}'
    

    Usage with JSON file:

    pytest --inject-json path/to/injection.json
    
  • --inject-dict

    Allows you to inject arguments using a Python dictionary defined in a file, or a callable that returns a dictionary. This is useful for injecting complex objects that cannot be represented in JSON.

    Format: path/to/file.py::variable_or_function

    Example injection_data.py:

    def get_data():
        return {"complex_obj": SomeClass(), "timestamp": 123456789}
    
    data_dict = {"simple_arg": "value"}
    

    Usage:

    # Use a variable
    pytest --inject-dict injection_data.py::data_dict
    
    # Use a function
    pytest --inject-dict injection_data.py::get_data
    
  • --inject-allow-dup

    By default, pytest-inject automatically removes duplicate parameter sets created by the injection. This process also re-indexes the parameter sets and removes their IDs. Use this flag to disable this behavior if you want to preserve the original parameter set indexes and IDs, or if you specifically need the duplicate test cases resulting from the injection.

    Usage:

    pytest "tests/test.py::test_my_app::[my_id]" --inject-json '{"arg": "val"}' --inject-allow-dup
    

Contributions

Contributions in the form of bug reports, feature requests, and pull requests are most welcome!

Development Installation

To install the project for development purposes:

  1. Clone the repository:

    git clone https://github.com/yourusername/pytest-inject.git
    cd pytest-inject
    
  2. Install dependencies (assuming you are using a virtual environment):

    pip install -e .
    

    Or if you are using hatch:

    hatch env create
    

Running Tests

To run the project's own tests after installing for development, execute pytest from the project root pointing to the tests/ directory:

pytest tests/

Or if you are using hatch:

hatch test

License

This project is licensed under the MIT License.

Metadata

Release files for pytest-inject 0.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-inject 0.1.0
File Size Uploaded
pytest_inject-0.1.0.tar.gz 9.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pytest-inject 0.1.0
File Interpreter ABI Platform
pytest_inject-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 17.4 kB

Release files / pytest_inject-0.1.0.tar.gz

Download URL pytest_inject-0.1.0.tar.gz
Size 9.1 kB
Tags Source
SHA-256 checksum
How to use checksums
a754c4edf8795979cc45d131de8cf53bb1bbdda5ef50329e081b80015518f92c
BLAKE2b-256 checksum
How to use checksums
e4d481f1ad2bfc51d493076063e517b15fe78f32114ce095921d3e3185d6e01b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 25, 2025.

Transparency log

Release files / pytest_inject-0.1.0-py3-none-any.whl

Download URL pytest_inject-0.1.0-py3-none-any.whl
Size 8.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ded63c8e4b9fc270638111f50436c7d880543908e99d275e38cd176e94c35efa
BLAKE2b-256 checksum
How to use checksums
fe444746e75a5c56d9f3f3214a15e2b36fd3d0f938839c08b11a094bdc6740f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 25, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

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