feat: add per-member payment frequencies

This commit is contained in:
Marcel Peterkau
2026-07-30 19:17:26 +02:00
parent 6d9c50b148
commit c3cdf71506
8 changed files with 168 additions and 6 deletions
+23
View File
@@ -40,9 +40,32 @@ def test_repository_creates_transparent_member_record(tmp_path) -> None:
assert raw["person"]["nickname"] == "Enchantress"
assert raw["schema_version"] == 1
assert raw["membership"]["ended_at"] == ""
assert raw["contribution_profile"]["payment_frequency"] == "semiannual"
assert raw["content_hash"]
def test_existing_member_without_payment_frequency_defaults_to_semiannual(tmp_path) -> None:
repository = MemberRepository(tmp_path)
repository.initialize()
member = repository.create_member(first_name="Legacy", last_name="Member")
member_path = repository.members_root / member.member_id / "member.json"
raw = json.loads(member_path.read_text(encoding="utf-8"))
raw["contribution_profile"].pop("payment_frequency")
member_path.write_text(json.dumps(raw), encoding="utf-8")
assert repository.get_member(member.member_id).payment_frequency == "semiannual"
def test_repository_rejects_unknown_payment_frequency(tmp_path) -> None:
repository = MemberRepository(tmp_path)
repository.initialize()
member = repository.create_member(first_name="Invalid", last_name="Frequency")
member.payment_frequency = "weekly"
with pytest.raises(RepositoryError, match="Ungültige Zahlweise"):
repository.save_member(member)
def test_search_matches_name_email_number_and_german_birth_date(tmp_path) -> None:
repository = MemberRepository(tmp_path)
repository.initialize()