Metadata-Version: 2.4
Name: issuetest
Version: 1.0.0rc2
Summary: IssueTest framework — reusable functional test scaffolding and pytest plugin
Author: Your Team
Requires-Python: >=3.10
Requires-Dist: jinja2>=3.0
Requires-Dist: jsonschema>=4.0
Requires-Dist: pydantic>=2.0
Requires-Dist: pygithub>=1.58
Requires-Dist: pyyaml>=6.0
Requires-Dist: requests>=2.0
Requires-Dist: tenacity>=8.0
Requires-Dist: typer>=0.7
Provides-Extra: dev
Requires-Dist: mypy; extra == 'dev'
Requires-Dist: pre-commit; extra == 'dev'
Requires-Dist: pydantic>=2.0; extra == 'dev'
Requires-Dist: pytest-asyncio; extra == 'dev'
Requires-Dist: pytest-cov; extra == 'dev'
Requires-Dist: pytest>=7.0; extra == 'dev'
Requires-Dist: pyyaml; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Description-Content-Type: text/markdown

# IssueTest

IssueTest is a repo-agnostic functional test framework that treats GitHub Issues as the test specification, syncs them into YAML case files, scaffolds test stubs, runs those tests with pytest, and prepares status comments back to the originating issues.

## What works now

- `issuetest init` bootstraps a consumer repository with config, templates, workflows, and labels.
- `issuetest matrix` builds an automation matrix from case YAMLs and discovered tests.
- `issuetest scaffold <case_id>` creates discoverable pytest stubs with embedded `case_id` metadata.
- `issuetest run` executes pytest and writes `.issuetest/run_report.json`.
- `issuetest report --dry-run` renders the exact comment bodies that would be posted to GitHub issues.
- The reusable composite Actions for `sync`, `validate`, `run`, and `report` exist under `action/*`.

## Install

Until the package is published to PyPI, install from the local package directory or a built wheel.

```bash
python -m pip install ./tools/issuetest
```

Or build and install the wheel:

```bash
python -m build tools/issuetest -o tools/issuetest/dist
python -m pip install --no-deps tools/issuetest/dist/issuetest-1.0.0rc1-py3-none-any.whl
```

After PyPI publication, the intended install is:

```bash
python -m pip install issuetest
```

## Commands

```bash
issuetest init
issuetest sync --dry-run
issuetest validate
issuetest matrix
issuetest scaffold SUB-PLAN-001
issuetest run
issuetest report --dry-run
issuetest doctor
```

## Docs

- `docs/quickstart.md` for setup.
- `docs/ci-recipes.md` for reusable GitHub Actions.
- `docs/commercex-subscriptions.md` for the worked CommerceX subscriptions example.
- `docs/threat_model.md` for the security and trust model.
