Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ Contributors add user-facing entries under `[Unreleased]` in the same PR. Mainta

- **Tests**: `tests/test_skill_issuer.py` now requires `test_skill.py` for every registry skill under `skills/` (#160).
- **Documentation**: Clarified that bundle tests must mock network calls and model downloads in CI (#170).
- **Documentation**: Added a **Status** section to [TESTING.md](docs/TESTING.md) summarizing the current testing model and planned CLI work (#179).

## [0.3.7] - 2026-06-22

Expand Down
14 changes: 14 additions & 0 deletions docs/TESTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,20 @@ Skillware maintains high standards for code quality and reliability. Before subm

Tests fall into four layers: **bundle**, **framework**, **maintainer**, and **example**. Use that vocabulary consistently in docs and PRs.

## Status

| Capability | Status |
| :--- | :---: |
| Bundle tests in CI (`pytest skills/`) | Done |
| Every registry skill ships `test_skill.py` | Done |
| Issuer enforces bundle tests on new skills | Done |
| Bundle tests mock network and model downloads in CI | Done |
| Maintainer tests under `tests/skills/` (optional per skill) | Done |
| `[all]` extra covers bundle-test runtime deps | Done |
| CLI `skillware test` for bundle discovery | Planned |

Every pull request runs `black --check`, `flake8`, `pytest skills/`, and `pytest tests/`. Bundle tests gate merge the same as framework and maintainer tests.

## Quick Setup

Install lint tools, pytest, and optional skill runtime deps in one go (matches GitHub Actions CI):
Expand Down
2 changes: 1 addition & 1 deletion tests/test_skill_issuer.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ def test_registry_skills_declare_issuer():


def test_registry_skills_have_bundle_test():
"""Every registry skill must ship a co-located bundle test (RFC #156)."""
"""Every registry skill must ship a co-located bundle test."""
for skill_dir in _discover_skill_dirs():
rel = skill_dir.relative_to(REPO_ROOT).as_posix()
assert (
Expand Down
Loading