""" Script de test pour le serveur MCP Agriculture """ import json import sys import os # Ajouter le répertoire courant au path pour les imports sys.path.append(os.path.dirname(os.path.abspath(__file__))) from app import AgricultureMCPServer def test_mcp_server(): """Test du serveur MCP""" print("🧪 Test du serveur MCP Agriculture") print("=" * 50) # Initialiser le serveur server = AgricultureMCPServer() # Test 1: Chargement des données print("📊 Test 1: Chargement des données") result = server.load_agriculture_data() print(f"Résultat: {result}") print() # Test 2: Résumé des données print("📋 Test 2: Résumé des données") summary = server.get_data_summary() try: summary_data = json.loads(summary) if "error" in summary_data: print(f"❌ Erreur: {summary_data['error']}") else: print(f"✅ Données disponibles: {summary_data.get('nombre_lignes', 0)} lignes") print(f" Colonnes: {len(summary_data.get('colonnes', []))}") print(f" Années: {summary_data.get('annees_disponibles', [])}") except json.JSONDecodeError: print(f"❌ Erreur de parsing JSON: {summary}") print() # Test 3: Analyse des herbicides print("🌿 Test 3: Analyse des herbicides") herb_result = server.analyze_herbicide_usage(2023, "statistics") try: herb_data = json.loads(herb_result) if "error" in herb_data: print(f"❌ Erreur: {herb_data['error']}") else: print(f"✅ Analyse réussie: {herb_data.get('status', 'OK')}") if "data" in herb_data: data = herb_data["data"] print(f" Parcelles: {data.get('nombre_parcelles', 0)}") print(f" Surface totale: {data.get('surface_totale', 0):.2f}") except json.JSONDecodeError: print(f"❌ Erreur de parsing JSON: {herb_result}") print() # Test 4: Visualisation print("📈 Test 4: Création de visualisation") try: fig = server.create_herbicide_visualization(2023, "top_ift") if fig and hasattr(fig, 'data'): print("✅ Visualisation créée avec succès") print(f" Type: {type(fig).__name__}") else: print("❌ Échec de création de la visualisation") except Exception as e: print(f"❌ Erreur lors de la visualisation: {str(e)}") print() # Test 5: Requête base de données print("🔍 Test 5: Requête base de données") query_result = server.query_database("products_by_year", year=2023) try: query_data = json.loads(query_result) if "error" in query_data: print(f"❌ Erreur: {query_data['error']}") else: print(f"✅ Requête réussie pour l'année {query_data.get('year', 2023)}") products = query_data.get('products', {}) print(f" Produits trouvés: {len(products)}") for prod, count in list(products.items())[:3]: # Afficher les 3 premiers print(f" - {prod}: {count}") except json.JSONDecodeError: print(f"❌ Erreur de parsing JSON: {query_result}") print() print("🎉 Tests terminés!") if __name__ == "__main__": test_mcp_server()