feat(controls): 5 neue Use Cases + Machinery-Fix + Korpus-/Lizenz-Übersicht
CI / detect-changes (push) Successful in 14s
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 11s
CI / validate-canonical-controls (push) Failing after 5s
CI / loc-budget (push) Successful in 22s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / test-go (push) Successful in 1m11s
CI / nodejs-lint (push) Has been skipped
CI / nodejs-build (push) Successful in 3m41s
CI / iace-gt-coverage (push) Failing after 5s
CI / test-python-backend (push) Failing after 5s
CI / test-python-document-crawler (push) Has been skipped
CI / test-python-dsms-gateway (push) Has been skipped
CI / detect-changes (push) Successful in 14s
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 11s
CI / validate-canonical-controls (push) Failing after 5s
CI / loc-budget (push) Successful in 22s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / test-go (push) Successful in 1m11s
CI / nodejs-lint (push) Has been skipped
CI / nodejs-build (push) Successful in 3m41s
CI / iace-gt-coverage (push) Failing after 5s
CI / test-python-backend (push) Failing after 5s
CI / test-python-document-crawler (push) Has been skipped
CI / test-python-dsms-gateway (push) Has been skipped
- Registry: arbeitsrecht, gesellschaftsrecht, insolvenzrecht, csrd, bafin_it + Mapper-Regeln für zuvor ungemappte Quell-Gesetze, Machinery-Guide 2006/42 -> maschinen. Jetzt 43 Use Cases (Achse 1 / license 1+2 vollständig). - corpus_overview Service + GET /v1/controls/corpus: Quell-Dokumente mit Lizenz-Tier + atom-Count + Use-Case + kuratiertem Lizenz-Katalog. - list_use_cases trägt atom_classification-Counts (atom_total/atom_relevant). - Frontend /sdk/coverage: Use-Case-Übersicht + Korpus-Dokumente + Lizenz-Katalog. - Tests: registry-Mappings (neue Domänen), corpus tier-labels, coverage-helpers. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
"""Tests fuer die Korpus-/Lizenz-Uebersicht (#74)."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from compliance.services.corpus_overview import license_tier_label
|
||||
|
||||
|
||||
def test_license_tier_labels():
|
||||
assert "frei nutzbar" in license_tier_label(1)
|
||||
assert "Attribution" in license_tier_label(2)
|
||||
assert "Eigenformulierung" in license_tier_label(3)
|
||||
|
||||
|
||||
def test_license_tier_label_unknown_safe():
|
||||
assert license_tier_label(None) == "unbekannt"
|
||||
assert license_tier_label(0) == "unbekannt"
|
||||
assert license_tier_label(99) == "unbekannt"
|
||||
@@ -132,6 +132,28 @@ def test_regulation_mapper_known():
|
||||
assert reg.use_case_for_regulation(reg_str) == expected, reg_str
|
||||
|
||||
|
||||
def test_regulation_mapper_new_domains():
|
||||
# 2026-06-14: zuvor ungemappte Quell-Gesetze -> neue Use Cases + Fixes.
|
||||
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_regulation_mapper_impressum_misroutes_fixed():
|
||||
# Phase A: Telekom-/Datenschutz-/Gewerbe-Gesetze duerfen NICHT mehr als
|
||||
# Impressum durchgehen (Korpus enthaelt kein echtes Impressumsrecht ausser
|
||||
|
||||
Reference in New Issue
Block a user