"""Test de integración real de langfuse_client con el SDK installado."""
import os
import sys

os.chdir(r"C:\xampp\htdocs\xzonassite\ops\multiagent-supervisor")
sys.path.insert(0, ".")

import app.langfuse_client as lf

# Reset estado global para test aislado
lf._client = None
lf._enabled = False

print("=== Test 1: init con servidor inexistente (fail-safe) ===")
lf.setup_langfuse(
    enabled=True,
    public_key="pk-lf-test-1234567890",
    secret_key="sk-lf-test-0987654321",
    host="http://127.0.0.1:3100",
)
print("is_enabled:", lf.is_enabled())
print("summary:", lf.get_summary())

print()
print("=== Test 2: record_generation con servidor no disponible ===")
lf.record_generation(
    trace_name="test_plan",
    model="kimi-k2.5:cloud",
    provider_name="ollama",
    system_prompt="Eres un agente OPS.",
    user_prompt="Revisa el estado de produccion.",
    output='{"summary": "Todo OK"}',
    latency_ms=1234.5,
    input_tokens=150,
    output_tokens=200,
)
print("record_generation: OK (sin excepcion)")

print()
print("=== Test 3: start_trace / finish_trace ===")
tid = lf.start_trace("create_command_plan", {"text": "test"}, tags=["ops"])
print("trace_id:", tid)
lf.finish_trace(tid, output={"proposals": 3})
print("finish_trace: OK")

print()
print("=== Test 4: ContextVar async-safe ===")
lf.set_current_trace_id("abc-123")
print("get_current_trace_id:", lf.get_current_trace_id())
lf.set_current_trace_id(None)
print("after reset:", lf.get_current_trace_id())

print()
print("=== Test 5: teardown (flush) ===")
lf.teardown_langfuse()
print("teardown: OK")

print()
print("ALL REAL-SDK TESTS PASSED")
