Files
CCMA/tests/test_ui_imports.py
T
2026-06-21 17:59:49 +02:00

62 lines
2.0 KiB
Python

def test_ui_modules_import_without_creating_root_window() -> None:
import ccma.app # noqa: F401
import ccma.ui.main_window # noqa: F401
import ccma.ui.member_tab # noqa: F401
import ccma.ui.splash # noqa: F401
def test_splash_position_centers_on_pointer_and_stays_on_screen() -> None:
from ccma.ui.splash import centered_position
assert centered_position(
width=620,
height=330,
pointer_x=2500,
pointer_y=600,
screen_x=0,
screen_y=0,
screen_width=3840,
screen_height=1080,
) == (2190, 435)
assert centered_position(
width=620,
height=330,
pointer_x=10,
pointer_y=10,
screen_x=0,
screen_y=0,
screen_width=1920,
screen_height=1080,
) == (0, 0)
def test_event_labels_hide_board_actor_but_keep_automatic_marker() -> None:
from ccma.domain.models import Event
from ccma.ui.member_tab import _event_label
user_event = Event("1", "2026-01-01T00:00:00+01:00", "comment", "Kommentar", "user", "Vorstand")
system_event = Event("2", "2026-01-01T00:00:00+01:00", "automatic", "Automatisch")
assert _event_label(user_event) == "Kommentar"
assert _event_label(system_event) == "[AUTO] Automatisch"
def test_housekeeper_details_are_multiline() -> None:
from datetime import date
from ccma.domain.models import HousekeeperFinding
from ccma.ui.work_tabs import _finding_details
finding = HousekeeperFinding(
severity="error",
member_id="member-1",
code="invalid_member_record",
title="Mitgliederakte beschädigt",
detail="Die JSON-Datei ist leer und wird nicht automatisch überschrieben.",
due_date=date(2026, 7, 31),
)
rendered = _finding_details(finding)
assert rendered.splitlines()[0] == "ERROR · invalid_member_record"
assert "Mitgliederakte beschädigt\nFällig:" in rendered
assert rendered.endswith("nicht automatisch überschrieben.")