Metadata-Version: 2.5
Name: autohilt
Version: 0.3.0
Summary: autoHILT test executor — hardware-in-loop pytest fixtures generated from your drawn test station
Project-URL: Homepage, https://autohilt.com
Author-email: RML Consulting <hello@autohilt.com>
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: Pytest
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Embedded Systems
Classifier: Topic :: Software Development :: Testing
Requires-Python: >=3.9
Requires-Dist: pytest<9,>=7
Requires-Dist: tomli>=2; python_version < '3.11'
Description-Content-Type: text/markdown

# autohilt

The test engine for [autoHILT](https://autohilt.com) — automated
hardware-in-loop testing for embedded systems.

autoHILT turns a drawing of your test station into pytest fixtures: draw the
station (MCUs on their board, debugger, relays, power) on the autoHILT canvas,
publish it, and this package brings those components to life as fixtures named
after your own drawing — `my_mcu`, `cli`, `dut_power` — in plain, unmodified
pytest.

```bash
python3 -m venv .venv && source .venv/bin/activate
pip install autohilt
autohilt init            # the first-run wizard: repo, login, config, starter test
pytest --ah-dev          # iterate — results are never recorded
```

Every test computer carries a built-in `greeter` endpoint, so the whole loop
works before any hardware arrives:

```python
def test_hello(greeter):
    assert greeter.ping() == "hello from my-rig v1"
```

Plain `pytest` is a **production run** — recorded against your workspace — so
it insists on a tree it can trace (committed, pushed, credentialed) and names
every missing precondition instead of quietly downgrading the run.

## Commands

| command | what it does |
| --- | --- |
| `autohilt init` | first-run wizard: set up or connect a test repo, sync, write the starter test |
| `autohilt sync` | resolve the pinned config, cache its parts list, write `autohilt.lock` |
| `autohilt check` | full local-state report; every ✗ names its fix |
| `autohilt link` | hold this machine's connection to the server: scheduled runs arrive down it, health is reported every 10 minutes, and the station reads online while it runs (`--install-service` to keep it up across reboots) |
| `autohilt scaffold` | write starting libraries for each board on your canvas |
| `autohilt migrate` | after a rename on the canvas, rewrite your tests to match |

Requires Python 3.9+ and pytest 7 or 8. The full walkthrough — account to
recorded run in about ten minutes, no hardware required — is at
[autohilt.com](https://autohilt.com).

- Homepage: https://autohilt.com
- Contact: hello@autohilt.com
