feat: troppa roba davvero
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
import pytest
|
||||
|
||||
pytestmark = [pytest.mark.integration, pytest.mark.api]
|
||||
|
||||
|
||||
def test_login_logout_revokes_real_token(real_client):
|
||||
login_response = real_client.post(
|
||||
"/auth/login",
|
||||
json={"username": "integration-admin", "password": "integration-admin"},
|
||||
)
|
||||
|
||||
assert login_response.status_code == 200
|
||||
token = login_response.json()["access_token"]
|
||||
headers = {"Authorization": f"Bearer {token}"}
|
||||
|
||||
list_response = real_client.get("/proxy", headers=headers)
|
||||
assert list_response.status_code == 200
|
||||
assert list_response.json() == []
|
||||
|
||||
logout_response = real_client.post("/auth/logout", headers=headers)
|
||||
assert logout_response.status_code == 204
|
||||
|
||||
revoked_response = real_client.get("/proxy", headers=headers)
|
||||
assert revoked_response.status_code == 401
|
||||
assert revoked_response.json()["detail"] == "Could not validate credentials"
|
||||
@@ -0,0 +1,80 @@
|
||||
import pytest
|
||||
|
||||
pytestmark = [pytest.mark.integration, pytest.mark.api]
|
||||
|
||||
VALID_PROXY_CODE = """def request(flow):
|
||||
return None
|
||||
"""
|
||||
|
||||
|
||||
def test_proxy_crud_round_trip_uses_real_app_and_mongo(real_client, auth_headers):
|
||||
create_response = real_client.post(
|
||||
"/proxy",
|
||||
headers=auth_headers,
|
||||
json={
|
||||
"proxy_port": 49081,
|
||||
"name": "integration-echo",
|
||||
"code": VALID_PROXY_CODE,
|
||||
"protocol": "http",
|
||||
"service": {
|
||||
"host": "127.0.0.1",
|
||||
"port": 49082,
|
||||
},
|
||||
"healthcheck": {
|
||||
"enabled": True,
|
||||
"path": "/healthz",
|
||||
"benchmark_enabled": True,
|
||||
},
|
||||
},
|
||||
)
|
||||
|
||||
assert create_response.status_code == 201
|
||||
created = create_response.json()
|
||||
assert created["proxy_port"] == 49081
|
||||
assert created["name"] == "integration-echo"
|
||||
assert created["healthcheck"]["benchmark_enabled"] is True
|
||||
|
||||
list_response = real_client.get("/proxy", headers=auth_headers)
|
||||
assert list_response.status_code == 200
|
||||
assert [item["proxy_port"] for item in list_response.json()] == [49081]
|
||||
|
||||
get_response = real_client.get("/proxy/49081", headers=auth_headers)
|
||||
assert get_response.status_code == 200
|
||||
assert get_response.json()["service"]["port"] == 49082
|
||||
|
||||
update_response = real_client.put(
|
||||
"/proxy/49081",
|
||||
headers=auth_headers,
|
||||
json={
|
||||
"name": "integration-echo-updated",
|
||||
"code": VALID_PROXY_CODE.replace("None", '"updated"'),
|
||||
"healthcheck": {
|
||||
"enabled": True,
|
||||
"path": "/ready",
|
||||
"benchmark_enabled": False,
|
||||
},
|
||||
},
|
||||
)
|
||||
|
||||
assert update_response.status_code == 200
|
||||
updated = update_response.json()
|
||||
assert updated["name"] == "integration-echo-updated"
|
||||
assert updated["code"].endswith('return "updated"\n')
|
||||
assert updated["healthcheck"]["path"] == "/ready"
|
||||
assert updated["healthcheck"]["benchmark_enabled"] is False
|
||||
|
||||
history_response = real_client.get(
|
||||
"/proxy/49081/health/history",
|
||||
headers=auth_headers,
|
||||
)
|
||||
assert history_response.status_code == 200
|
||||
history_payload = history_response.json()
|
||||
assert history_payload["proxy_port"] == 49081
|
||||
assert history_payload["latest"] is None
|
||||
assert history_payload["history"] == []
|
||||
|
||||
delete_response = real_client.delete("/proxy/49081", headers=auth_headers)
|
||||
assert delete_response.status_code == 204
|
||||
|
||||
missing_response = real_client.get("/proxy/49081", headers=auth_headers)
|
||||
assert missing_response.status_code == 404
|
||||
Reference in New Issue
Block a user