Metadata-Version: 2.4
Name: automaze-proof
Version: 0.20260316.0
Summary: Capture visual evidence of test execution
Author-email: Ran Aroussi <opensource@automaze.io>
License-Expression: Apache-2.0
Project-URL: Homepage, https://github.com/automazeio/proof
Project-URL: Repository, https://github.com/automazeio/proof
Project-URL: Issues, https://github.com/automazeio/proof/issues
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Testing
Requires-Python: >=3.9
Description-Content-Type: text/markdown

# automaze-proof

Python SDK for [proof](https://github.com/automazeio/proof) -- capture visual evidence of test execution.

Thin wrapper around the `proof` CLI. Requires the binary on PATH.

## Install

```bash
pip install automaze-proof
```

The `proof` binary must be installed separately:

```bash
curl -fsSL https://automaze.io/install/proof | sh
```

## Usage

```python
from proof import Proof

p = Proof(app_name="my-app", proof_dir="./evidence")

recording = p.capture(
    command="pytest tests/ -v",
    mode="terminal",
    label="unit-tests",
)

print(recording.path)      # /abs/path/unit-tests-143012.html
print(recording.duration)  # 4300

p.report()
```

### pytest fixture

```python
# conftest.py
import pytest
from proof import Proof

@pytest.fixture(scope="session", autouse=True)
def proof_session():
    p = Proof(app_name="my-app", proof_dir="./evidence")
    yield p
    p.report()
```

## API

### `Proof(app_name, proof_dir=None, run=None, description=None)`

### `proof.capture(command, mode="terminal", label=None, description=None) -> Recording`

### `proof.report(format=None) -> str | list[str]`

### `Recording` (dataclass)
- `path: str`
- `mode: str`
- `duration: int`
- `label: str | None`
