feat: Präfix System- für Tool-Serien reserviert, Kreditraten-Serie heißt System-Kreditraten (A12-T1)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
import pytest
|
||||
|
||||
from app.models.views import RESERVED_SCENARIO_NAME
|
||||
from app.reserved import SYSTEM_PREFIX, is_reserved_name
|
||||
from app.services.planning_chart import KREDITRATEN
|
||||
|
||||
H = {"Authorization": "Bearer test-key"}
|
||||
|
||||
|
||||
def test_systemnamen_leiten_sich_vom_praefix_ab():
|
||||
assert SYSTEM_PREFIX == "System-"
|
||||
assert RESERVED_SCENARIO_NAME == "System-Ist"
|
||||
assert KREDITRATEN == "System-Kreditraten"
|
||||
|
||||
|
||||
@pytest.mark.parametrize("name,expected", [
|
||||
("System-X", True), ("system-kreditraten", True), (" SYSTEM-Ist ", True),
|
||||
("Kreditraten", False), ("Systemkosten", False), ("Ist-System", False),
|
||||
("System", False),
|
||||
])
|
||||
def test_is_reserved_name(name, expected):
|
||||
assert is_reserved_name(name) is expected
|
||||
|
||||
|
||||
@pytest.mark.parametrize("name", ["System-X", "system-kreditraten", " SYSTEM-Ist "])
|
||||
def test_kategorie_post_reserviert(client, name):
|
||||
r = client.post("/api/categories", headers=H, json={"name": name})
|
||||
assert r.status_code == 422
|
||||
assert r.json()["detail"] == ("Namen, die mit »System-« beginnen, sind für "
|
||||
"vom Tool erzeugte Einträge reserviert")
|
||||
|
||||
|
||||
def test_kategorie_patch_reserviert(client):
|
||||
cat = client.post("/api/categories", headers=H, json={"name": "Normal"}).json()
|
||||
r = client.patch(f"/api/categories/{cat['id']}", headers=H, json={"name": "System-Test"})
|
||||
assert r.status_code == 422
|
||||
names = [c["name"] for c in client.get("/api/categories", headers=H).json()]
|
||||
assert "Normal" in names and "System-Test" not in names
|
||||
|
||||
|
||||
@pytest.mark.parametrize("name", ["Kreditraten", "Systemkosten", "Ist-System"])
|
||||
def test_kategorie_normale_namen_erlaubt(client, name):
|
||||
assert client.post("/api/categories", headers=H, json={"name": name}).status_code == 201
|
||||
|
||||
|
||||
@pytest.mark.parametrize("name", ["System-Plan", "system-x"])
|
||||
def test_szenario_praefix_reserviert(client, name):
|
||||
r = client.post("/api/scenarios", headers=H, json={"name": name})
|
||||
assert r.status_code == 422
|
||||
assert "reserviert" in r.json()["detail"]
|
||||
Reference in New Issue
Block a user