chore: 允许 ai-service Python 文件入库(.gitignore 例外)
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
import base64
|
||||
|
||||
from fastapi.testclient import TestClient
|
||||
|
||||
from app.main import app
|
||||
|
||||
# 1x1 透明 PNG
|
||||
TINY_PNG = base64.b64decode(
|
||||
"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg=="
|
||||
)
|
||||
|
||||
client = TestClient(app)
|
||||
|
||||
|
||||
def test_health():
|
||||
r = client.get("/health")
|
||||
assert r.status_code == 200
|
||||
body = r.json()
|
||||
assert body["status"] == "ok"
|
||||
assert body["model"] in ("mock", "onnx")
|
||||
|
||||
|
||||
def test_detect_ok():
|
||||
r = client.post("/detect", files={"file": ("a.png", TINY_PNG, "image/png")})
|
||||
assert r.status_code == 200
|
||||
body = r.json()
|
||||
assert body["model"] == "mock"
|
||||
assert len(body["detections"]) >= 1
|
||||
d = body["detections"][0]
|
||||
assert d["class"] in ("healthy", "sick")
|
||||
assert 0 <= d["confidence"] <= 1
|
||||
assert d["bbox"]["w"] > 0
|
||||
|
||||
|
||||
def test_detect_empty_file_rejected():
|
||||
r = client.post("/detect", files={"file": ("a.png", b"", "image/png")})
|
||||
assert r.status_code == 400
|
||||
|
||||
|
||||
def test_detect_invalid_image_rejected():
|
||||
r = client.post("/detect", files={"file": ("a.png", b"junk", "image/png")})
|
||||
assert r.status_code == 400
|
||||
Reference in New Issue
Block a user