53 lines
1.9 KiB
Python
53 lines
1.9 KiB
Python
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_garbage_returns_raw_value() -> None:
|
|
assert format_record_time("not-a-timestamp") == "not-a-timestamp"
|
|
|
|
|