from fastapi import FastAPI, Depends
from fastapi.testclient import TestClient

from nfl import verificar_credenciales
from hermes_player_gateway import router

app = FastAPI()
app.include_router(
    router,
    dependencies=[Depends(verificar_credenciales)]
)

# Solo para probar las rutas HLS en laboratorio.
# La autenticación real ya se comprobó por separado.
app.dependency_overrides[verificar_credenciales] = (
    lambda: "laboratorio"
)

def primera_referencia(texto):
    for linea in texto.splitlines():
        linea = linea.strip()
        if linea.startswith("/api/player/resource/"):
            return linea
    raise RuntimeError("No se encontró referencia HLS")

with TestClient(app) as client:

    master = client.get(
        "/api/player/play/ppv/lagranja1.m3u8",
        timeout=30
    )
    assert master.status_code == 200, master.status_code
    assert master.text.startswith("#EXTM3U")
    print("MASTER HTTP: 200")

    media_url = primera_referencia(master.text)
    media = client.get(media_url, timeout=30)
    assert media.status_code == 200, media.status_code
    assert media.text.startswith("#EXTM3U")
    print("MEDIA HTTP: 200")

    segmento_url = primera_referencia(media.text)
    print("SEGMENTO REGISTRADO: OK")
    print("RUTA PRIVADA:", segmento_url.split("/")[-2])

print("GATEWAY HTTP LABORATORIO: OK")
