ETOS Test Runner
ETOS (Eiffel Test Orchestration System) Test Runner
Description
The ETOS Test Runner is responsible for executing test suites in ETOS. ETR should, ideally, be executed within a test runner docker container.
Installation
pip install etos_test_runner
Prebuilt local container
Commit the intended changes, then run make docker-build. This builds only HEAD (including in a Git worktree), not staged or uncommitted files. The default image tag is etos-test-runner:local-<12-character-commit>; override it with IMG=etos-test-runner:<unique-non-latest-tag> if needed. make docker-test validates that image locally without an ETOS service or Kubernetes cluster. It requires Docker and Python, but no Python test dependencies.
The Dockerfile inherits the Ubuntu Noble base runner’s Python 3.13 virtual environment, etos user (UID/GID 3705), tools, artifact paths and separate test framework virtual environment. Dependencies are installed at build time using requirements.lock as constraints. Startup runs etos_test_runner.etr directly, forwarding arguments and ignoring runtime DEV / ETR_VERSION installation overrides. The package’s lib/executor.sh still executes tests.
Git archive substitutes .git_archival.txt using .gitattributes so setuptools-scm derives the package version from the committed revision without copying .git. The full commit is also recorded in the image’s org.opencontainers.image.revision label. Use make docker-build rather than docker build .; the latter deliberately fails with unsubstituted metadata. Builds need access to the base image and Python dependency indexes; runner startup does not install the runner package. Test commands may still need their own dependencies and network access.
Load the image with kind load docker-image <image> --name <cluster> and select it in each suite execution’s environment.testRunner. See the ETOS local installation guide for the complete suite workflow.
Telemetry
Set OTEL_EXPORTER_OTLP_ENDPOINT to enable tracing and correlated logging. Like the suite runner, initialization uses OpenTelemetry environment and process resource detectors with the test runner’s service name and installed version.
Suite-level lifecycle spans and bounded phase/outcome metrics are retained; individual test executions do not emit tracing events. Metrics use the OTEL_EXPORTER_OTLP_ENDPOINT endpoint or OTEL_EXPORTER_OTLP_METRICS_ENDPOINT and expose no local scrape endpoint.
Without an endpoint, or with OTEL_SDK_DISABLED=true, tracing, metrics and logs are no-op.
Contribute
Issue Tracker: https://github.com/eiffel-community/etos/issues
Source Code: https://github.com/eiffel-community/etos-test-runner
Support
If you are having issues, please let us know. There is a mailing list at: etos-maintainers@googlegroups.com or just write an Issue.
Metadata
Release files for etos-test-runner 3.20.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| etos_test_runner-3.20.1.tar.gz | 119.5 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| etos_test_runner-3.20.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 167.9 kB
Release files / etos_test_runner-3.20.1.tar.gz
| Download URL | etos_test_runner-3.20.1.tar.gz |
|---|---|
| Size | 119.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8094b6ee5fb4d32b84accc2e054e1d1f9b221928434c6fcab753f4041d50a4a5
|
|
BLAKE2b-256 checksum How to use checksums |
786d2056cb632a5a084c671e4894391fbe8a64642c3f77f682bd4819b937395c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 22, 2026.
Transparency logRelease files / etos_test_runner-3.20.1-py3-none-any.whl
| Download URL | etos_test_runner-3.20.1-py3-none-any.whl |
|---|---|
| Size | 48.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d5608d61772e829697fb42a02b4cc523937b4242840a2df087ad05046a82255c
|
|
BLAKE2b-256 checksum How to use checksums |
9ed7200cfeaf2f3fd2c6197b16495085f738f9d680d0b9a896955925c3dd7ed3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 22, 2026.
Transparency logSecurity for etos-test-runner 3.20.1
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for etos_test_runner-3.20.1.tar.gz
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 Oct 22, 2026.
Transparency logA 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.