Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

pytest-telescope

Declared inputs. Isolated tests. Focused reruns.

pytest-telescope uses one manifest to define which project files a test target can read and which changes invalidate its previous successful result. Each target is a fresh pytest session inside a Linux Docker container. Successful unchanged targets can reuse their recorded results; reused cases are reported separately from executed cases.

Alpha (0.1.0a1): implemented and qualified on Linux with real Docker workers. The benchmark records measured cold, warm, and selective reruns, including their overhead. The supported boundary and reuse assumptions are explicit; arbitrary Python determinism is not guaranteed.

Quickstart

Requirements: Linux, Python 3.11+, and a working local Docker daemon exposed through a Unix socket, with permission to build and run Linux containers. Runtime preparation needs network access; test workers have no network. Install from this checkout in a virtual environment:

python -m venv .venv
. .venv/bin/activate
python -m pip install .

From your project's root, add a manifest to pyproject.toml:

[tool.pytest.ini_options]
pythonpath = ["."]

[tool.pytest_telescope]
test_roots = ["tests"]

[tool.pytest_telescope.bundles.common]
inputs = ["tests/conftest.py", "app/__init__.py"]

[tool.pytest_telescope.targets.parser]
tests = ["tests/test_parser.py"]
inputs = ["app/parser.py", "tests/data/input.json"]
bundles = ["common"]

Declare every fixture, helper, application module, and resource your target needs. Then prepare a clean runtime and execute:

python -m pytest_telescope runtime
python -m pytest_telescope plan
python -m pytest_telescope run --explain -- -q
python -m pytest_telescope run --explain -- -q

The second identical run can reuse complete successful targets. A missing input is an error, not permission to expose more of your checkout. See the specification for declarations, grouping, invalidation, limits, and troubleshooting, and the synthetic example for an executable three-target project.

python -m pytest_telescope run --force -- -q
python -m pytest_telescope run --no-cache -- -q
python -m pytest_telescope run --timeout 120 -- -k parser

--force executes even when a successful record exists. --no-cache disables reuse and recording. For permanently non-cacheable targets, set cache = false. Clocks, randomness, environment, native state, and external services can invalidate assumptions about reuse: filesystem isolation does not prove arbitrary Python programs deterministic.

Runtime and pytest integration

The runtime contains a pinned Python base image and wheel-installed dependencies, not your host virtual environment or an editable copy of your application. For additional third-party packages, pass a requirements file containing the complete transitive dependency closure as exact name==version wheel dependencies:

python -m pytest_telescope runtime --requirements requirements.txt

The dedicated CLI starts no host pytest session. pytest --telescope also routes to isolated workers, but other installed plugins may execute during host pytest startup. pytest --telescope-plan remains available for static planning. Ordinary pytest stays ordinary when telescope mode is disabled; use -p no:telescope to disable plugin loading entirely.

See development, benchmark methodology, and publishing. Licensed under the MIT License.

Metadata

Release files for pytest-telescope 0.1.0a1

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-telescope 0.1.0a1
File Size Uploaded Provenance
pytest_telescope-0.1.0a1.tar.gz 54.5 kB Without provenance Details

Built distribution (wheel)

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

Total release size: 80.9 kB

Release files / pytest_telescope-0.1.0a1.tar.gz

Download URL pytest_telescope-0.1.0a1.tar.gz
Size 54.5 kB
Tags Source
SHA-256 checksum
How to use checksums
ce2414b75768968323957ac49adb5c6ddeb8752e5d688886b4273b600123e402
BLAKE2b-256 checksum
How to use checksums
c0239bc124132c08cb75b7bf7dfffffab75f9fe468a759abefa9298a76afdb62
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / pytest_telescope-0.1.0a1-py3-none-any.whl

Download URL pytest_telescope-0.1.0a1-py3-none-any.whl
Size 26.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c525234c1d603446936a08ac6a0c798d3f9313cc68f748c5cbe4251d3e663828
BLAKE2b-256 checksum
How to use checksums
27cd8dbbb51c446e274fc8884243594683d472eb4833e3213d328903dc72d0d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Security for pytest-telescope 0.1.0a1

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

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