feat(dsr): Go DSR deprecated, Python Export-Endpoint, Frontend an Backend-APIs anbinden
All checks were successful
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-ai-compliance (push) Successful in 34s
CI / test-python-backend-compliance (push) Successful in 30s
CI / test-python-document-crawler (push) Successful in 22s
CI / test-python-dsms-gateway (push) Successful in 17s
All checks were successful
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-ai-compliance (push) Successful in 34s
CI / test-python-backend-compliance (push) Successful in 30s
CI / test-python-document-crawler (push) Successful in 22s
CI / test-python-dsms-gateway (push) Successful in 17s
- Go: DEPRECATED-Kommentare an allen DSR-Handlern und Routes - Python: GET /dsr/export?format=csv|json (Semikolon-CSV, 12 Spalten) - API-Client: 12 neue Funktionen (verify, assign, extend, complete, reject, communications, exception-checks, history) - Detail-Seite: Alle Actions verdrahtet (keine Coming-soon-Alerts mehr), Communications + Art.17(3)-Checks + Audit-Log live - Haupt-Seite: CSV-Export-Button im Header - Tests: 54/54 bestanden (4 neue Export-Tests) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -697,3 +697,49 @@ class TestDSRTemplates:
|
||||
fake_id = str(uuid.uuid4())
|
||||
resp = client.get(f"/api/compliance/dsr/templates/{fake_id}/versions", headers=HEADERS)
|
||||
assert resp.status_code == 404
|
||||
|
||||
|
||||
class TestDSRExport:
|
||||
"""Tests for DSR export endpoint."""
|
||||
|
||||
def test_export_csv_empty(self):
|
||||
resp = client.get("/api/compliance/dsr/export?format=csv", headers=HEADERS)
|
||||
assert resp.status_code == 200
|
||||
assert "text/csv" in resp.headers.get("content-type", "")
|
||||
lines = resp.text.strip().split("\n")
|
||||
assert len(lines) == 1 # Header only
|
||||
assert "Referenznummer" in lines[0]
|
||||
assert "Zugewiesen" in lines[0]
|
||||
|
||||
def test_export_csv_with_data(self):
|
||||
# Create a DSR first
|
||||
body = {
|
||||
"request_type": "access",
|
||||
"requester_name": "Export Test",
|
||||
"requester_email": "export@example.de",
|
||||
"source": "email",
|
||||
}
|
||||
create_resp = client.post("/api/compliance/dsr", json=body, headers=HEADERS)
|
||||
assert create_resp.status_code == 200
|
||||
|
||||
resp = client.get("/api/compliance/dsr/export?format=csv", headers=HEADERS)
|
||||
assert resp.status_code == 200
|
||||
lines = resp.text.strip().split("\n")
|
||||
assert len(lines) >= 2 # Header + at least 1 data row
|
||||
# Check data row contains our test data
|
||||
assert "Export Test" in lines[1]
|
||||
assert "export@example.de" in lines[1]
|
||||
assert "access" in lines[1]
|
||||
|
||||
def test_export_json(self):
|
||||
resp = client.get("/api/compliance/dsr/export?format=json", headers=HEADERS)
|
||||
assert resp.status_code == 200
|
||||
data = resp.json()
|
||||
assert "exported_at" in data
|
||||
assert "total" in data
|
||||
assert "requests" in data
|
||||
assert isinstance(data["requests"], list)
|
||||
|
||||
def test_export_invalid_format(self):
|
||||
resp = client.get("/api/compliance/dsr/export?format=xml", headers=HEADERS)
|
||||
assert resp.status_code == 422 # Validation error
|
||||
|
||||
Reference in New Issue
Block a user