33 lines
912 B
Python
33 lines
912 B
Python
from fastapi.testclient import TestClient
|
|
from hypothesis import given, settings
|
|
from hypothesis import strategies as st
|
|
|
|
from main import app
|
|
|
|
client = TestClient(app)
|
|
|
|
def test_liveness_ok():
|
|
response = client.get("/health/live")
|
|
assert response.status_code == 200
|
|
assert response.text == "live"
|
|
|
|
|
|
def test_readiness_ok():
|
|
response = client.get("/health/ready")
|
|
assert response.status_code == 200
|
|
assert response.text == "ready"
|
|
|
|
def test_detailed_health_pass():
|
|
resp = client.get("/health")
|
|
assert resp.status_code == 200
|
|
body = resp.json()
|
|
assert body["status"] == "pass"
|
|
assert isinstance(body["checks"], dict)
|
|
|
|
@given(st.text(min_size=0, max_size=16))
|
|
@settings(max_examples=10)
|
|
def test_health_resilient_to_query_noise(noise: str):
|
|
resp = client.get("/health/live", params={"noise": noise})
|
|
assert resp.status_code == 200
|
|
assert resp.text == "live"
|