feat(api): standardize REST contracts and auth

This commit is contained in:
2026-07-30 20:38:51 +08:00
parent ae1a657554
commit ba947b616b
86 changed files with 54193 additions and 990 deletions
+14 -8
View File
@@ -78,7 +78,7 @@ def test_project_info_returns_404_when_missing(monkeypatch):
app.dependency_overrides[module.get_metadata_repository] = lambda: repo
client = TestClient(app)
response = client.get("/api/v1/project_info/", params={"network": "missing"})
response = client.get("/api/v1/projects/current", params={"network": "missing"})
assert response.status_code == 404
assert response.json()["detail"] == "Project missing not found"
@@ -100,7 +100,7 @@ def test_project_info_returns_project_workspace(monkeypatch):
app.dependency_overrides[module.get_metadata_repository] = lambda: repo
client = TestClient(app)
response = client.get("/api/v1/project_info/", params={"network": "demo"})
response = client.get("/api/v1/projects/current", params={"network": "demo"})
assert response.status_code == 200
payload = response.json()
@@ -121,7 +121,7 @@ def test_open_project_returns_network_even_when_db_connection_fails(monkeypatch)
monkeypatch.setattr(module, "get_pg_db", failing_get_pg_db)
client = TestClient(build_test_app(module.router, "/api/v1"))
response = client.post("/api/v1/openproject/", params={"network": "demo"})
response = client.post("/api/v1/projects/current", params={"network": "demo"})
assert response.status_code == 200
assert response.json() == "demo"
@@ -133,11 +133,17 @@ def test_project_lock_lifecycle(monkeypatch):
module.lockedPrjs.clear()
client = TestClient(build_test_app(module.router, "/api/v1"))
first_lock = client.post("/api/v1/lockproject/", params={"network": "demo"})
second_lock = client.post("/api/v1/lockproject/", params={"network": "demo"})
locked_by_me = client.get("/api/v1/isprojectlockedbyme/", params={"network": "demo"})
unlock = client.post("/api/v1/unlockproject/", params={"network": "demo"})
locked = client.get("/api/v1/isprojectlocked/", params={"network": "demo"})
first_lock = client.post("/api/v1/projects/current/lock", params={"network": "demo"})
second_lock = client.post("/api/v1/projects/current/lock", params={"network": "demo"})
locked_by_me = client.get(
"/api/v1/projects/current/lock/ownership",
params={"network": "demo"},
)
unlock = client.delete(
"/api/v1/projects/current/lock",
params={"network": "demo"},
)
locked = client.get("/api/v1/projects/current/lock", params={"network": "demo"})
assert first_lock.json() == 0
assert second_lock.json() == 1