Objectif
Un script Python autonome qui démontre les validators Pydantic avancés, BaseSettings, les types génériques, et les tests pytest — le tout dans un seul fichier exécutable.
Format : Script autonome (pas d'uvicorn requis) — peut être lancé directement avec
python solution.py ou testé avec pytest solution.py.
Fonctionnalités démontrées
- Validators Pydantic v2 :
@field_validator,@model_validator - Types personnalisés avec
Annotated - Schéma générique
PaginatedResponse[T] - Configuration via
BaseSettings+.env - Middleware
X-Process-Time - Tests pytest inline (422, 409, headers)
- Headers de sécurité OWASP
Structure
06-validation-securite/mini-projet/
├── index.html # Cette page
└── solution.py # Script complet et autonome
Lancer
cd 06-validation-securite/mini-projet
pip install fastapi uvicorn pydantic pydantic-settings pytest httpx
# Démo des validators
python solution.py
# Tests pytest
pytest solution.py -v
# API avec uvicorn
uvicorn solution:app --reload
Tests inclus
pytest solution.py -v
# test_password_too_short PASSED
# test_email_duplicate PASSED
# test_pagination_defaults PASSED
# test_process_time_header PASSED
# test_due_date_past PASSED
# test_security_headers PASSED