Skip to main content

testomatic-runner

The test runner for the Testomatic PCB test jig system: it parses a Test Suite Package produced by Register and executes its Test Steps in order against real hardware, via the testomatic-io hardware abstraction layer.

Overview

Testomatic's test pipeline has four parts, each in its own repo:

  1. Register — a Test Suite is authored/versioned there, against a PCB Design.
  2. testomatic-ui — the on-device touchscreen UI. Downloads and caches Test Suite Packages from Register so a device isn't dependent on Register being reachable to run a suite it already has.
  3. This repo (testomatic-runner) — receives a Test Suite Package (a ZIP containing test-suite-definition.json, documented in test-suite-package.md), parses it with testomatic.suite.load_suite(), and executes each Test Step in order with testomatic.runner.TestRunner.
  4. testomatic-io — carries out each step's hardware action (drive a power rail, read an IOMOD pin, beep, etc.) through its Chassis/ TestModule API.

The physical chassis, PCB, and Test Module hardware this runner drives live in the sibling Testomatic repo.

Usage

pip install -e ".[dev]"   # unit tests, no hardware required
pytest

# On a Raspberry Pi wired to a Testomatic chassis:
pip install -e ".[pi]"    # pulls in testomatic-io
python -m testomatic run path/to/suite-hw1-test-suite-v1.zip

run accepts either a Test Suite Package .zip or a bare test-suite-definition.json file.

import testomatic_io (and therefore python -m testomatic run) only works on real Raspberry Pi hardware — testomatic-io is installed via the pi extra rather than as a core dependency, since one of its dependencies (gpiod) has a native extension that only builds on Linux. See TEST_RUNNER_PLAN.md for what's implemented, what's stubbed, and what's still unverified on real hardware.

Repo layout

  • testomatic/suite.py — parses/validates a Test Suite Definition (JSON) into dataclasses.
  • testomatic/steps/ — one executor module per step_type, registered in steps/registry.py.
  • testomatic/runner.py — TestRunner.run(suite) executes test_steps in order, and format_report() renders the result plus the suite's manual_checks.
  • testomatic/cli.py / __main__.py — python -m testomatic run <suite.zip|suite.json>.
  • tests/conftest.py — fake Chassis/Power/Beeper/Iomod doubles standing in for real testomatic-io hardware.
  • test-suite-package.md — reference documentation for the Test Suite Package (ZIP) layout and the test-suite-definition.json format suite.py parses.
  • aqs-hw41-test-suite-v1.zip — a real sample Test Suite Package, used as a test fixture.
  • TEST_RUNNER_PLAN.md — the staged implementation plan and phase checklist.

Metadata

Release files for testomatic-runner 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 testomatic-runner 0.1.0
File Size Uploaded Provenance Actions
testomatic_runner-0.1.0.tar.gz 15.4 kB Without provenance Details for testomatic_runner-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for testomatic-runner 0.1.0
File Interpreter ABI Platform Actions
testomatic_runner-0.1.0-py3-none-any.whl Python 3 none any Details for testomatic_runner-0.1.0-py3-none-any.whl

Total release size: 30.6 kB

Release files / testomatic_runner-0.1.0.tar.gz

Download URL testomatic_runner-0.1.0.tar.gz
Size 15.4 kB
Tags Source
SHA-256 checksum
How to use checksums
5556bf81ab62787870ee545fd63a8d2ef7fd09a4413da10b15d380492a9535fd
BLAKE2b-256 checksum
How to use checksums
2ece64fd2a286d219444544b2f5d6c5b8a53b6ede912acafeae803bb9a31c371
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

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

Download URL testomatic_runner-0.1.0-py3-none-any.whl
Size 15.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ccc76f18218e4eca3153c7a1d30549a9427289a15fcdd5f2e868118ca37fa61e
BLAKE2b-256 checksum
How to use checksums
2750371aa8083ad579367165265b26ed5eb06f9d25a356c9faa15ca9cb4180d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

Security for testomatic-runner 0.1.0

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.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

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