Skip to main content

No project description provided

Project description

Tests & Lint PyPI PyPI downloads License

Introduction

Pytest plugin to repeat tests and pass if the test passes a number of times out of a total.

Purpose

I want to leverage pytest for model evaluation in a way that can be readily incorporated into CI/CD flows.

Installation

pip install pytest-repeated

🚀 Usage Example

@pytest.mark.repeated(times=4, threshold=2)
def test_example_fail_once():
    import random
    assert random.choice([True, False])  # may pass or fail

This test will run four times and pass if we get True in at least two of the four iterations.

🛠️ Development

The only requirement is 🐳 Docker. (The .devcontainer and tasks.json are prepared assuming a *nix system, but if you know the commands, this will work on Windows, too.)

  1. Clone the repo.
  2. Branch out.
  3. Open in "devcontainer" on VS Code and start developing. Run pytest under tests to test.
  4. Akternatively, if you are a fan of Test-Driven Development like me, you can run the tests without getting on a container. .vscode/tasks.json has the command to do so, but it's also listed here:
docker compose -f tests/docker-compose.yaml up --build --abort-on-container-exit --exit-code-from test
  1. When satisfied, push and open a PR. The pipeline will publish automatically when your PR is merged.

Future Plans

  • Better statistical measures
  • Optimized testing - stop conditions.
  • Sequential testing.
  • Ability to set the seed.

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_repeated-0.2.0.dev202511230137.tar.gz (6.1 kB view details)

Uploaded Source

Built Distribution

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

File details

Details for the file pytest_repeated-0.2.0.dev202511230137.tar.gz.

File metadata

File hashes

Hashes for pytest_repeated-0.2.0.dev202511230137.tar.gz
Algorithm Hash digest
SHA256 f12597992148a167f8a955ce6dc16e4d3926dc3bea2ca65ab7386c5a025b7d74
MD5 6d3fcabc40b013b6cf8e289f56c55cf1
BLAKE2b-256 59f791d3b1a13c59250b7c778cbffc3cde2009cf8a77bc256666f4240a16213d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_repeated-0.2.0.dev202511230137.tar.gz:

Publisher: cicd.yaml on sinan-ozel/pytest-repeated

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_repeated-0.2.0.dev202511230137-py3-none-any.whl.

File metadata

File hashes

Hashes for pytest_repeated-0.2.0.dev202511230137-py3-none-any.whl
Algorithm Hash digest
SHA256 3812e47fed2d7a82f00cd76764ac203b0de42b134bb2b6ae92d4294c5b5b5aa0
MD5 ea11c416f3ce59f8d916a10431a28db5
BLAKE2b-256 13c30ceadc338d3dd0fbd5dd93480a4bb0e14908a6e8d9f100b1eee771536ca1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_repeated-0.2.0.dev202511230137-py3-none-any.whl:

Publisher: cicd.yaml on sinan-ozel/pytest-repeated

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