#!/usr/bin/env python3 """ Test d'upload avec authentification pour vérifier la correction de l'agent v0. """ import os import requests import json from pathlib import Path def load_env_vars(): """Charge les variables d'environnement depuis .env.local""" env_path = Path(".env.local") if env_path.exists(): with open(env_path, 'r') as f: for line in f: line = line.strip() if line and not line.startswith('#') and '=' in line: key, value = line.split('=', 1) os.environ[key.strip()] = value.strip() def test_server_auth(): """Test l'authentification du serveur.""" load_env_vars() token = os.environ.get('RPA_TOKEN_ADMIN') if not token: print("❌ Token RPA_TOKEN_ADMIN non trouvé") return False print(f"✓ Token chargé: {token[:16]}...") # Test différents formats d'authentification headers_formats = [ {"Authorization": f"Bearer {token}"}, {"Authorization": f"Token {token}"}, {"X-API-Key": token}, {"RPA-Token": token}, ] for i, headers in enumerate(headers_formats): print(f"\nTest format {i+1}: {list(headers.keys())[0]}") try: response = requests.get( "http://localhost:8000/api/traces/status", headers=headers, timeout=5 ) print(f" Status: {response.status_code}") if response.status_code == 200: print(f" ✓ Succès avec format: {list(headers.keys())[0]}") print(f" Réponse: {response.json()}") return True else: print(f" ❌ Échec: {response.text}") except Exception as e: print(f" ❌ Erreur: {e}") return False def test_uploader_config(): """Vérifie la configuration de l'uploader de l'agent v0.""" try: import sys sys.path.insert(0, 'agent_v0') from uploader import Uploader from config import Config config = Config() uploader = Uploader(config) print(f"\nConfiguration uploader:") print(f" URL: {uploader.server_url}") print(f" Token présent: {bool(uploader.auth_token)}") if uploader.auth_token: print(f" Token: {uploader.auth_token[:16]}...") return bool(uploader.auth_token) except Exception as e: print(f"❌ Erreur lecture config uploader: {e}") return False if __name__ == "__main__": print("=== Test d'authentification serveur ===") server_ok = test_server_auth() uploader_ok = test_uploader_config() print(f"\n=== Résultats ===") print(f"Serveur accessible: {'✓' if server_ok else '❌'}") print(f"Uploader configuré: {'✓' if uploader_ok else '❌'}") if server_ok and uploader_ok: print("✓ Authentification fonctionnelle!") else: print("❌ Problème d'authentification détecté")