"""CI-Pfad-Tests fuer die Registry-Erweiterung 2026-06-14: 5 neue Use Cases + Mapper-Regeln fuer zuvor ungemappte Quell-Gesetze. Liegt in compliance/tests/ (im Gegensatz zu tests/), damit die CI sie faehrt.""" from __future__ import annotations from compliance.data import use_case_registry as reg def test_new_use_cases_registered(): for key in ("arbeitsrecht", "gesellschaftsrecht", "insolvenzrecht", "csrd", "bafin_it"): assert reg.is_valid_use_case(key), key def test_regulation_mapper_new_domains(): cases = { "Arbeitsverfassungsgesetz (ArbVG)": "arbeitsrecht", "Arbeitszeitgesetz (AZG)": "arbeitsrecht", "Mutterschutzgesetz (MuSchG)": "arbeitsrecht", "Mindestlohngesetz (MiLoG)": "arbeitsrecht", "Arbeitsgesetz (ArG)": "arbeitsrecht", "Aktiengesetz (AktG)": "gesellschaftsrecht", "GmbH-Gesetz (GmbHG)": "gesellschaftsrecht", "Obligationenrecht (OR)": "gesellschaftsrecht", "Insolvenzordnung (InsO)": "insolvenzrecht", "Corporate Sustainability Reporting Directive (CSRD)": "csrd", "VAIT (BaFin 2022)": "bafin_it", "BAIT (BaFin 2024)": "bafin_it", "EU Machinery Guide 2006/42": "maschinen", "GoBD (BMF-Schreiben 2025)": "steuerrecht", } for reg_str, expected in cases.items(): assert reg.use_case_for_regulation(reg_str) == expected, reg_str def test_existing_mappings_unchanged(): # Regression: die neuen Regeln duerfen bestehende Mappings nicht kapern. assert reg.use_case_for_regulation("TMG") == "impressum" assert reg.use_case_for_regulation("AT ABGB") == "handelsrecht" assert reg.use_case_for_regulation("OWASP Top 10 (2021)") == "code_security" assert reg.use_case_for_regulation("DSGVO (EU) 2016/679") == "dse" assert reg.use_case_for_regulation("Maschinenverordnung (EU) 2023/1230") == "maschinen" def test_all_rules_point_to_valid_use_cases(): for _needle, uc in reg._REGULATION_RULES: assert uc in reg.REGISTRY and reg.REGISTRY[uc].enabled, uc