#!/usr/bin/env python3
"""
Test de l'intégration Binance dans le générateur de signaux
"""

import sys
import os
import logging

# Ajouter le chemin du module
sys.path.append('/var/www/html/HyperOracle/crypto_trader/simple_trading_system')

from pragmatic_signals import PragmaticSignalGenerator

def test_binance_integration():
    """Teste l'intégration complète avec Binance"""

    # Configurer le logging pour voir les détails
    logging.basicConfig(level=logging.INFO)

    print("=== TEST INTÉGRATION BINANCE ===")

    # Tester le générateur avec Binance
    try:
        generator = PragmaticSignalGenerator()
        print("✅ Générateur initialisé avec Binance")
    except Exception as e:
        print(f"❌ Erreur initialisation: {e}")
        return

    # Tester la récupération de données pour BTC
    try:
        data = generator.get_market_data('BTC')
        if data:
            print(f"✅ Données BTC récupérées: {len(data['closes'])} candles")
            print(f"   Prix actuel: ${data['current_price']:,.2f}")
            print(f"   Volume 24h: ${data['volume_24h']:,.0f}")
        else:
            print("❌ Échec récupération données BTC")
    except Exception as e:
        print(f"❌ Erreur données BTC: {e}")

    # Tester l'analyse d'un signal
    try:
        signal = generator.analyze_symbol('BTC')
        if signal:
            print(f"✅ Signal BTC généré: {signal.side} - {signal.reason}")
            print(f"   Qualité: {signal.quality_score:.2f}, Leverage: {signal.leverage}x")
        else:
            print("ℹ️  Aucun signal BTC actuellement")
    except Exception as e:
        print(f"❌ Erreur analyse signal: {e}")

    # Tester avec ETH
    try:
        data = generator.get_market_data('ETH')
        if data:
            print(f"✅ Données ETH récupérées: {len(data['closes'])} candles")
            print(f"   Prix actuel: ${data['current_price']:,.2f}")
        else:
            print("❌ Échec récupération données ETH")
    except Exception as e:
        print(f"❌ Erreur données ETH: {e}")

    # Test connectivité Binance directe
    try:
        connectivity = generator.binance_provider.test_connectivity()
        if connectivity:
            print("✅ Connectivité Binance OK")
        else:
            print("❌ Problème connectivité Binance")
    except Exception as e:
        print(f"❌ Erreur test connectivité: {e}")

if __name__ == "__main__":
    test_binance_integration()