refact: use only server
This commit is contained in:
91
backend/test_api.py
Executable file
91
backend/test_api.py
Executable file
@@ -0,0 +1,91 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Test basique de l'API unifiée hosts
|
||||
"""
|
||||
|
||||
import requests
|
||||
import json
|
||||
import sys
|
||||
|
||||
def test_api():
|
||||
base_url = "http://localhost:8000/api"
|
||||
|
||||
print("🧪 Test de l'API Zebra Power - Hosts unifiés")
|
||||
print("=" * 50)
|
||||
|
||||
try:
|
||||
# Test 1: Health check
|
||||
print("\n1. Test de santé de l'API...")
|
||||
response = requests.get(f"{base_url}/health", timeout=5)
|
||||
if response.status_code == 200:
|
||||
print(" ✅ API en ligne")
|
||||
else:
|
||||
print(f" ❌ API hors service ({response.status_code})")
|
||||
return False
|
||||
|
||||
# Test 2: Liste des hosts (vide au début)
|
||||
print("\n2. Test de récupération des hosts...")
|
||||
response = requests.get(f"{base_url}/hosts", timeout=5)
|
||||
if response.status_code == 200:
|
||||
hosts = response.json()
|
||||
print(f" ✅ {len(hosts)} hosts trouvés")
|
||||
else:
|
||||
print(f" ❌ Erreur récupération hosts ({response.status_code})")
|
||||
return False
|
||||
|
||||
# Test 3: Créer un host de test
|
||||
print("\n3. Test de création d'un host...")
|
||||
test_host = {
|
||||
"name": "Host Test",
|
||||
"description": "Host de test pour l'API",
|
||||
"ip_address": "192.168.1.100",
|
||||
"mac_address": "00:11:22:33:44:55",
|
||||
"proxmox_host": "192.168.1.100",
|
||||
"proxmox_username": "root",
|
||||
"proxmox_password": "password",
|
||||
"proxmox_port": 8006,
|
||||
"verify_ssl": False,
|
||||
"shutdown_endpoint": "/api/shutdown"
|
||||
}
|
||||
|
||||
# Note: Ce test échouera car nous n'avons pas de Proxmox réel
|
||||
response = requests.post(f"{base_url}/hosts", json=test_host, timeout=10)
|
||||
if response.status_code == 200:
|
||||
created_host = response.json()
|
||||
print(f" ✅ Host créé avec ID {created_host['id']}")
|
||||
|
||||
# Test 4: Récupérer le host créé
|
||||
print("\n4. Test de récupération du host créé...")
|
||||
response = requests.get(f"{base_url}/hosts/{created_host['id']}", timeout=5)
|
||||
if response.status_code == 200:
|
||||
host_data = response.json()
|
||||
print(f" ✅ Host récupéré: {host_data['name']}")
|
||||
|
||||
# Test 5: Supprimer le host de test
|
||||
print("\n5. Test de suppression du host...")
|
||||
response = requests.delete(f"{base_url}/hosts/{created_host['id']}", timeout=5)
|
||||
if response.status_code == 200:
|
||||
print(" ✅ Host supprimé avec succès")
|
||||
else:
|
||||
print(f" ❌ Erreur suppression host ({response.status_code})")
|
||||
else:
|
||||
print(f" ❌ Erreur récupération host ({response.status_code})")
|
||||
else:
|
||||
print(f" ❌ Échec création host ({response.status_code})")
|
||||
print(f" Raison: {response.text}")
|
||||
# C'est normal si pas de Proxmox réel
|
||||
|
||||
print(f"\n🎉 Tests terminés - API fonctionnelle")
|
||||
return True
|
||||
|
||||
except requests.exceptions.ConnectionError:
|
||||
print(" ❌ Impossible de se connecter à l'API")
|
||||
print(" Vérifiez que le serveur backend est démarré sur http://localhost:8000")
|
||||
return False
|
||||
except Exception as e:
|
||||
print(f" ❌ Erreur inattendue: {e}")
|
||||
return False
|
||||
|
||||
if __name__ == "__main__":
|
||||
success = test_api()
|
||||
sys.exit(0 if success else 1)
|
||||
Reference in New Issue
Block a user