from __future__ import annotations import os from datetime import date, datetime os.environ.setdefault("QT_QPA_PLATFORM", "offscreen") from doctor_workstation.ui.widgets import format_record_time def test_format_record_time_with_unix_seconds_returns_minute_precision() -> None: stamp = 1787119871 expected = datetime.fromtimestamp(stamp).strftime("%Y-%m-%d %H:%M") assert format_record_time(stamp) == expected assert format_record_time(str(stamp)) == expected assert format_record_time(float(stamp)) == expected def test_format_record_time_with_unix_milliseconds_returns_minute_precision() -> None: stamp_ms = 1_787_119_871_234 expected = datetime.fromtimestamp(stamp_ms / 1000).strftime("%Y-%m-%d %H:%M") assert format_record_time(stamp_ms) == expected assert format_record_time(str(stamp_ms)) == expected assert format_record_time(float(stamp_ms)) == expected def test_format_record_time_with_iso_string_truncates_to_minute() -> None: assert format_record_time("2026-08-20T17:31:11Z") == "2026-08-20 17:31" assert format_record_time("2026-08-20 17:31:11") == "2026-08-20 17:31" def test_format_record_time_with_preformatted_string_passes_through_when_short() -> None: assert format_record_time("—") == "—" assert format_record_time("刚刚") == "刚刚" def test_format_record_time_with_blank_or_none_returns_default() -> None: assert format_record_time(None) == "—" assert format_record_time("") == "—" assert format_record_time(" ") == "—" assert format_record_time(None, default="?") == "?" def test_format_record_time_with_datetime_returns_minute_precision() -> None: assert format_record_time(datetime(2026, 8, 20, 17, 31, 11)) == "2026-08-20 17:31" assert format_record_time(date(2026, 8, 20)) == "2026-08-20" def test_format_record_time_with_unset_epoch_returns_default() -> None: # The API sends 0 (and occasionally "0") for a snapshot cutoff or finish time that does # not exist yet; it must not be rendered as a bare 0 or as 1970. assert format_record_time(0) == "—" assert format_record_time("0") == "—" assert format_record_time(-1) == "—" assert format_record_time(0, default="未开始") == "未开始" def test_format_record_time_with_garbage_returns_raw_value() -> None: assert format_record_time("not-a-timestamp") == "not-a-timestamp"