About testing-python
A testing strategy skill for Python 3.14+ projects. It outlines testing and quality-check practices using pytest, Ruff, mypy, Playwright, and related tools.
Key features
- 01Use pytest for unit and integration tests
- 02Check and format code with Ruff
- 03Run strict type checks with mypy
- 04Use Playwright, Hypothesis, and Mutmut
Use cases
- 01Write tests for FastAPI or Django backends
- 02Configure linting, formatting, and type checks in CI
- 03Verify browser flows with Playwright
- 04Assess test quality with property and mutation testing
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ thebeardedbearsas/ claude-craft --skill testing-pythonAfter installing, type/testing-pythonin Claude Code to confirm it loaded.
Bundled filesREFERENCE.md
Details
From the project READMEStratégie de Tests Python 3.14+
Versions : Python 3.14+ | pytest 9.x | Ruff 0.17+ | mypy 2.x | Playwright
Ruff remplace Black + isort + Flake8 (10-100x plus rapide). mypy strict élimine les bugs de type à la compilation.
Stack recommandée 2026
| Type | Outil | Usage |
|---|---|---|
| Unit/Integration | pytest 9.x | Tests backend FastAPI/Django |
| Linting + Format | Ruff 0.17+ | 10-100× plus rapide que Black+Flake8 |
| Type checking | mypy 2.x strict | Vérification statique |
| E2E/Browser | Playwright | Tests frontend web |
| BDD (Gherkin) | pytest-bdd | Scénarios Given/When/Then |
| Mutation | Mutmut | Qualité des tests (score >= 80%) |
| Property-based | Hypothesis | Génération de cas de test automatique |
Sources : pytest, Ruff, Mutmut
Invariants non-négociables
- Couverture >= 80% (
--cov-fail-under=80danspyproject.toml) - mypy strict — zéro
Anynon justifié,disallow_untyped_defs = true - Ruff obligatoire (check + format) dans CI
- Pattern AAA (Arrange-Act-Assert) dans chaque test
- Fixtures pytest pour l'injection de dépendances (pas d'état global)
- Mutation score >= 80% via Mutmut
Checklist par type
| Type | Vérification |
|---|---|
| Unit | Isolation totale, fixtures pytest, mocks unittest.mock |
| Integration | TestClient FastAPI / Client Django, DB de test |
| E2E | Playwright sync_api, expect() assertions |
| Property | Hypothesis @given pour edge cases automatiques |
| Mutation | mutmut run, score >= 80 avant merge |
Détails complets, exemples de code, configs et checklists : voir REFERENCE.md
Comments
Markdown supported