import providers.flux as fx

def test_blocked_during_trading_hours(monkeypatch):
    monkeypatch.setenv("FLUX_BLOCK_TRADING_HOURS", "1")
    monkeypatch.setattr(fx, "_is_trading_hours", lambda: True)
    calls = []
    monkeypatch.setattr(fx, "webhook_update_task", lambda *a, **k: calls.append((a, k)))
    fx.run_flux_generation("t1", {"prompt": "a cat"})
    assert calls[-1][0][1] == "failed"
    assert "장중" in calls[-1][1]["error"]

def test_success_polls_history_and_saves(monkeypatch):
    monkeypatch.setattr(fx, "_is_trading_hours", lambda: False)
    calls = []
    monkeypatch.setattr(fx, "webhook_update_task", lambda *a, **k: calls.append((a, k)))
    monkeypatch.setattr(fx, "_load_workflow", lambda prompt, size: {"3": {}})
    monkeypatch.setattr(fx, "_submit_prompt", lambda wf: "pid-1")
    monkeypatch.setattr(fx, "_poll_image_b64", lambda pid: "ZmFrZQ==")
    monkeypatch.setattr(fx, "save_b64_png", lambda tid, b64: "/media/image/t1.png")
    fx.run_flux_generation("t1", {"prompt": "a cat"})
    assert [c for c in calls if c[0][1] == "succeeded"]
