6a6c2dbcaa
CI / detect-changes (push) Successful in 17s
CI / branch-name (push) Has been skipped
CI / guardrail-integrity (push) Has been skipped
CI / secret-scan (push) Has been skipped
CI / dep-audit (push) Has been skipped
CI / sbom-scan (push) Has been skipped
CI / build-sha-integrity (push) Successful in 9s
CI / validate-canonical-controls (push) Successful in 8s
CI / loc-budget (push) Successful in 21s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / nodejs-build (push) Successful in 3m6s
CI / test-go (push) Has been skipped
CI / iace-gt-coverage (push) Has been skipped
CI / test-python-backend (push) Successful in 30s
CI / test-python-document-crawler (push) Has been skipped
CI / test-python-dsms-gateway (push) Has been skipped
- _ATOM_LIST_SQL via LATERAL: zusaetzlich cpl.source_article (Gesetzes-Artikel) im atom-grain Response. Spalte control_parent_links.source_article verifiziert (macmini + prod). - Registry-Mapper-Test (neue Domaenen) nach compliance/tests/ verschoben — CI faehrt compliance/tests/, nicht tests/; schliesst die CI-Luecke der 6-neue-Use-Cases-Erweiterung. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
49 lines
2.0 KiB
Python
49 lines
2.0 KiB
Python
"""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
|