fix: tolerate invalid member dates in views

This commit is contained in:
Marcel Peterkau
2026-06-21 16:49:51 +02:00
parent dfd5b1192b
commit e63abbae81
5 changed files with 52 additions and 3 deletions
+4
View File
@@ -36,6 +36,10 @@ def test_date_display_uses_system_pattern(monkeypatch) -> None:
assert format_date_for_display("2024-02-29") == "2024-02-29"
def test_invalid_date_remains_visible_for_correction() -> None:
assert format_date_for_display("31/12/2000") == "31/12/2000"
def test_birth_date_checks_future_and_plausibility() -> None:
today = date(2026, 6, 21)
assert validate_birth_date("2000-06-22", today=today) == date(2000, 6, 22)
+18
View File
@@ -1,3 +1,4 @@
import json
from datetime import date
from ccma.domain.models import ContributionData
@@ -91,3 +92,20 @@ def test_housekeeper_reports_day_month_and_year_anniversaries(tmp_path) -> None:
"Anniversary2 Member hat heute 1-jähriges Mitgliedsjubiläum",
"Anniversary3 Member hat in 1 Tag 10-jähriges Mitgliedsjubiläum",
}
def test_housekeeper_reports_invalid_member_dates(tmp_path) -> None:
repository = MemberRepository(tmp_path)
repository.initialize()
member = repository.create_member(first_name="Broken", last_name="Date")
member_path = repository.members_root / member.member_id / "member.json"
raw = json.loads(member_path.read_text(encoding="utf-8"))
raw["person"]["birth_date"] = "31/12/2000"
member_path.write_text(json.dumps(raw), encoding="utf-8")
findings = Housekeeper(repository).run(today=date(2026, 6, 21))
invalid = [finding for finding in findings if finding.code == "invalid_member_dates"]
assert len(invalid) == 1
assert invalid[0].member_id == member.member_id
assert "Geburtsdatum" in invalid[0].detail