""" Test l'API /explore avec des exemples de films """ import requests import json # Configuration API_URL = "http://localhost:8000" API_TOKEN = "your-api-token" # Remplacez par votre token def test_explore_endpoint(): """Test l'endpoint /explore avec différents scénarios""" # Lire les métadonnées pour avoir des IDs de test with open("app/data/movie_metadata.json", "r") as f: metadata = json.load(f) # Prendre les premiers films comme exemples movie_ids = list(metadata.keys())[:5] print(f"Films de test disponibles : {[metadata[mid]['title'] for mid in movie_ids]}") # Test 1: Recherche avec 1 film aimé print("\n🎬 Test 1: Recherche avec 1 film aimé") test_request = { "liked_ids": [int(movie_ids[0])], "disliked_ids": [], "top_k": 10 } try: response = requests.post( f"{API_URL}/explore", json=test_request, headers={"Authorization": f"Bearer {API_TOKEN}"} ) if response.status_code == 200: data = response.json() print(f"✅ Trouvé {len(data['movies'])} films similaires") print(f"Film aimé: {metadata[movie_ids[0]]['title']}") print("Films recommandés:") for movie in data['movies'][:3]: print(f" - {movie['title']} ({movie['year']}) - {movie['genres']}") else: print(f"❌ Erreur {response.status_code}: {response.text}") except Exception as e: print(f"❌ Erreur de connexion: {e}") print("💡 Vérifiez que votre API_TOKEN est correct dans le .env") # Test 2: Recherche avec 2 films aimés print("\n🎬 Test 2: Recherche avec 2 films aimés") test_request = { "liked_ids": [int(movie_ids[0]), int(movie_ids[1])], "disliked_ids": [], "top_k": 10 } try: response = requests.post( f"{API_URL}/explore", json=test_request, headers={"Authorization": f"Bearer {API_TOKEN}"} ) if response.status_code == 200: data = response.json() print(f"✅ Trouvé {len(data['movies'])} films similaires") print(f"Films aimés: {metadata[movie_ids[0]]['title']}, {metadata[movie_ids[1]]['title']}") print("Barycenter:", data['bary']) else: print(f"❌ Erreur {response.status_code}: {response.text}") except Exception as e: print(f"❌ Erreur: {e}") if __name__ == "__main__": print("🧪 Test de l'API /explore") print("=" * 40) test_explore_endpoint()