SuperAPI AI Directory

testing-python

Coding & development

View repository

Updated 10-15 23:39

About this skill

Straté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=80 dans pyproject.toml)
  • mypy strict — zéro Any non 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