Sécurité et Qualité Logicielle

1. Tests unitaires

Les tests backend sont réalisés avec pytest (voir backend/test_import_movies.py). Exemple de test :

# backend/test_import_movies.py
def test_import_movies():
    ... # test d'import et de validation des données

Des tests d’intégration sont prévus pour le frontend et le scraper.


2. Validation continue

Chaque modification du code déclenche un pipeline CI (lint, tests, build). Les erreurs sont bloquantes pour le merge.


3. Isolation des environnements

Docker garantit la cohérence des environnements entre dev, CI et prod. Les dépendances sont figées dans les fichiers requirements.txt et package.json.


4. Sécurité des secrets

Aucun secret n’est stocké dans le dépôt : tout est géré via les secrets GitHub et les variables d’environnement. Les accès aux bases de données sont protégés par des mots de passe forts et non versionnés.

Exemple de configuration dans docker-compose.yml :

db:
  image: postgres:15
  environment:
    POSTGRES_USER: letterbox
    POSTGRES_PASSWORD: letterbox
    POSTGRES_DB: letterbox