Retain live processing timings across UI reruns
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
from datetime import date
|
||||
|
||||
from mka.application.meeting_service import ParticipantInput
|
||||
from mka.application.progress_timing import TimingSnapshot
|
||||
from mka.application.run_inputs import RunInputState
|
||||
from mka.ui import streamlit_app
|
||||
|
||||
@@ -66,3 +67,29 @@ def test_imported_inputs_are_applied_via_pending_state_before_widgets(
|
||||
assert "source_media_1" not in state
|
||||
assert "pending_run_inputs" not in state
|
||||
assert state["source_media_0"] is existing_upload
|
||||
|
||||
|
||||
def test_duration_formatting_covers_seconds_minutes_and_hours() -> None:
|
||||
assert streamlit_app._format_duration(8.9) == "00:08"
|
||||
assert streamlit_app._format_duration(7 * 60 + 18) == "07:18"
|
||||
assert streamlit_app._format_duration(3600 + 3 * 60 + 42) == "1:03:42"
|
||||
|
||||
|
||||
def test_completed_regeneration_timing_survives_frontend_rerun(monkeypatch) -> None:
|
||||
state = {}
|
||||
monkeypatch.setattr(streamlit_app.st, "session_state", state)
|
||||
timing = TimingSnapshot(
|
||||
stage_durations={"protocol_generation": 4.5},
|
||||
active_stage=None,
|
||||
total_duration=4.5,
|
||||
running=False,
|
||||
)
|
||||
states = {stage: "skipped" for stage in streamlit_app.STAGES}
|
||||
states["protocol_generation"] = "completed"
|
||||
|
||||
streamlit_app._remember_regeneration_timing(states, "Protocol regenerated", timing)
|
||||
|
||||
saved_states, saved_message, saved_timing = state["regeneration_progress"]
|
||||
assert saved_states["protocol_generation"] == "completed"
|
||||
assert saved_message == "Protocol regenerated"
|
||||
assert saved_timing == timing
|
||||
|
||||
Reference in New Issue
Block a user