""" Script pour exécuter tous les tests du backend. """ import subprocess import sys def run_command(cmd: str, description: str) -> bool: """ Exécute une commande shell et retourne le succès. Args: cmd: Commande à exécuter description: Description de la commande Returns: True si la commande a réussi, False sinon """ print(f"\n🔍 {description}") print("=" * 60) try: result = subprocess.run( cmd, shell=True, check=True, capture_output=False ) print(f"✅ {description} réussi !") return True except subprocess.CalledProcessError as e: print(f"❌ {description} échoué avec le code {e.returncode}") return False def main(): """Fonction principale.""" print("🧪 Exécution des tests du backend...") print("=" * 60) all_passed = True # Tests unitaires all_passed &= run_command( "pytest tests/ -v --tb=short", "Tests unitaires" ) # Linting all_passed &= run_command( "flake8 app/ --max-line-length=100", "Linting avec flake8" ) # Formatting all_passed &= run_command( "black --check app/", "Vérification du formatage avec black" ) print("\n" + "=" * 60) if all_passed: print("✅ Tous les tests et validations ont réussi !") return 0 else: print("❌ Certains tests ou validations ont échoué.") return 1 if __name__ == "__main__": sys.exit(main())