Metadata-Version: 2.4
Name: goga-tool-pybuggy
Version: 1.0.0
License: BSD-3-Clause
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
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: Programming Language :: Python :: 3.14
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: click>=8.0
Requires-Dist: datamodel-code-generator>=0.68
Requires-Dist: gitpython>=3.1
Requires-Dist: jsonpath-ng>=1.6
Requires-Dist: jsonschema>=4.0
Requires-Dist: prance>=23.0.0
Requires-Dist: pydantic>=2.0
Requires-Dist: pyhamcrest>=2.0
Requires-Dist: python-dateutil>=2.8
Requires-Dist: python-dotenv>=1.2.2
Requires-Dist: pyyaml>=6.0
Requires-Dist: ruamel.yaml>=0.18
Requires-Dist: ruff>=0.15.0
Requires-Dist: jinja2>=3.1
Requires-Dist: flaky>=3.8.1
Requires-Dist: pytest-concurrency<1.1.0,>=1.0.0
Requires-Dist: swax<1.1.0,>=1.0.0
Requires-Dist: resq<1.1.0,>=1.0.0
Requires-Dist: pluginator<1.1.0,>=1.0.0
Provides-Extra: test
Requires-Dist: goga<1.3.0,>=1.2.0; extra == "test"
Requires-Dist: pytest>=8.0; extra == "test"
Requires-Dist: pytest-cov>=5.0; extra == "test"
Requires-Dist: ruff>=0.15.0; extra == "test"
Requires-Dist: jinja2>=3.1; extra == "test"
Provides-Extra: docs
Requires-Dist: mkdocs>=1.6.0; extra == "docs"
Requires-Dist: mkdocs-material>=9.5.0; extra == "docs"
Dynamic: license-file

# goga-tool-pybuggy

pytest plugin and CLI that bootstrap a goga-project for API testing with pybuggy.

**Documentation**: <https://qarium.github.io/goga-tool-pybuggy/>

## Getting started: `goga tool pybuggy init`

Run `goga tool pybuggy init` in the target project root. It interactively initializes the
goga-project, builds the tool config, and generates the wiring the plugin needs
(`.goga/config.yml`, `.goga/Dockerfile`, `.goga/tools/pybuggy/config.yml`, root
`conftest.py`).

Behavior notes:

- **Init runs offline** — the goga "Download base convention" question is never
  asked and no network requests are made during initialization.
- **`.goga/usages/conventions.md` is package-owned** — on every successful run
  it is overwritten with the test convention shipped inside this package
  (pytest configuration, logging, Allure reporting). Local edits to that file
  are not preserved; keep project-specific rules elsewhere. A legacy
  goga-downloaded convention in the slot migrates automatically.
- Existing files (`.goga/config.yml`, `.goga/tools/pybuggy/config.yml`,
  `conftest.py`) are only overwritten after an explicit confirmation
  (default: no); the conventions slot above is the one exception.
- Usage keys `conventions`, `pybuggy-api`, and `pybuggy-asserts` and their
  annotation lines are registered in `.goga/config.yml` under
  `codemanifest` (idempotent; pre-existing user-defined keys are never
  overwritten).
