oc-p10-content-recommendation/azure-app/test_local.py

92 lines
No EOL
2.8 KiB
Python

import logging
import sys
import os
# Configuration du logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s'
)
# Ajouter le dossier utils au path
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
from utils.content_based import get_recommendations
from utils.data_loader import get_available_users, check_data_files, load_embeddings
def test_data_loading():
"""Test du chargement des données."""
print("🔄 Test du chargement des données...")
if not check_data_files():
print("❌ Fichiers de données manquants")
return False
try:
# Test chargement embeddings
embeddings = load_embeddings()
print(f"✅ Embeddings chargés: {embeddings.shape}")
# Test chargement utilisateurs
users = get_available_users()
print(f"✅ Utilisateurs chargés: {len(users)} utilisateurs")
print(f" Premiers utilisateurs: {users[:5]}")
return True
except Exception as e:
print(f"❌ Erreur lors du chargement: {e}")
return False
def test_recommendations():
"""Test des recommandations."""
print("\n🔄 Test des recommandations...")
users = get_available_users()
test_users = users[:3] if len(users) >= 3 else users
for user_id in test_users:
print(f"\n👤 Test pour utilisateur {user_id}:")
try:
recommendations = get_recommendations(user_id, n_recommendations=5)
if recommendations:
print(f"✅ {len(recommendations)} recommandations générées")
print(f" Articles recommandés: {recommendations}")
else:
print("⚠️ Aucune recommandation générée")
except Exception as e:
print(f"❌ Erreur pour utilisateur {user_id}: {e}")
def test_edge_cases():
"""Test des cas limites."""
print("\n🔄 Test des cas limites...")
# Test utilisateur inexistant
print("Test utilisateur inexistant (ID: 99999):")
result = get_recommendations(99999)
if result is None:
print("✅ Utilisateur inexistant géré correctement")
else:
print(f"⚠️ Résultat inattendu: {result}")
def main():
"""Fonction principale de test."""
print("🚀 Démarrage des tests locaux\n")
# Test 1: Chargement des données
if not test_data_loading():
print("\n❌ Tests interrompus - problème de chargement")
return
# Test 2: Recommandations
test_recommendations()
# Test 3: Cas limites
test_edge_cases()
print("\n✨ Tests terminés")
if __name__ == "__main__":
main()