47 lines
1.3 KiB
Python
47 lines
1.3 KiB
Python
from __future__ import annotations
|
|
|
|
import os
|
|
from types import SimpleNamespace
|
|
|
|
os.environ["DATABASE_URL"] = "sqlite:///:memory:"
|
|
|
|
from api import main
|
|
|
|
|
|
def test_post_event_persists_live_overlay_in_job_result(monkeypatch):
|
|
patched: list[dict] = []
|
|
job = SimpleNamespace(result={"total": 10})
|
|
event = SimpleNamespace(to_dict=lambda: {"id": 1})
|
|
fake_store = SimpleNamespace(
|
|
get_job=lambda _job_id: job,
|
|
add_event=lambda *_args, **_kwargs: event,
|
|
patch_job=lambda _job_id, **kwargs: patched.append(kwargs) or job,
|
|
)
|
|
monkeypatch.setattr(main, "store", fake_store)
|
|
|
|
response = main.post_event(
|
|
"job-1",
|
|
main.EventBody(
|
|
event_type="radicado_processing",
|
|
message="Procesando",
|
|
index=4,
|
|
total=10,
|
|
metadata={
|
|
"estado": "Procesando",
|
|
"processed": 3,
|
|
"reinicios": 1,
|
|
"radicado_actual": "RAD-4",
|
|
"elapsed_seconds": 90,
|
|
"speed_per_minute": 2.0,
|
|
},
|
|
),
|
|
_="token",
|
|
)
|
|
|
|
assert response == {"id": 1}
|
|
result = patched[0]["result"]
|
|
assert result["processed"] == 3
|
|
assert result["total"] == 10
|
|
assert result["radicado_actual"] == "RAD-4"
|
|
assert result["reinicios"] == 1
|