#!/usr/bin/env python3
"""
Script pour exécuter les tests Web Sentinel avec pytest
"""

import subprocess
import sys
from pathlib import Path

def run_tests():
    """Exécuter les tests avec pytest."""
    
    # Chemin vers l'environnement virtuel
    venv_python = Path(".venv/Scripts/pytest.exe")
    
    if not venv_python.exists():
        print("❌ Environnement virtuel non trouvé. Installez d'abord pytest :")
        print("   pip install pytest pytest-cov pytest-asyncio")
        return False
    
    # Arguments pytest par défaut
    pytest_args = [
        str(venv_python),
        "tests/",
        "-v",                    # Verbose
        "--tb=short",            # Traceback court
        "--cov=web_sentinel",    # Coverage
        "--cov-report=term-missing",  # Rapport coverage
    ]
    
    # Ajout d'arguments depuis la ligne de commande
    if len(sys.argv) > 1:
        pytest_args.extend(sys.argv[1:])
    
    print("🧪 Exécution des tests Web Sentinel...")
    print(f"Commande: {' '.join(pytest_args)}")
    print("-" * 60)
    
    try:
        result = subprocess.run(pytest_args, cwd=Path("."))
        return result.returncode == 0
    except Exception as e:
        print(f"❌ Erreur lors de l'exécution des tests: {e}")
        return False

if __name__ == "__main__":
    success = run_tests()
    exit(0 if success else 1)