33 lines
1.2 KiB
Python
33 lines
1.2 KiB
Python
import io
|
|
import pytest
|
|
from unittest.mock import patch
|
|
|
|
def test_upload_permit(client):
|
|
"""File upload should trigger OCR + classification via SDK."""
|
|
with patch("app.routes.druppie") as mock_druppie:
|
|
mock_druppie.call.side_effect = [
|
|
{"text": "Vergunning K-2019-0042. Aanvrager: J. de Vries. Lozing oppervlaktewater."},
|
|
{"answer": "watervergunning_lozing"},
|
|
]
|
|
data = {
|
|
"file": (io.BytesIO(b"fake image data"), "scan.jpg"),
|
|
"permit_number": "K-2019-0042",
|
|
"applicant_name": "J. de Vries",
|
|
}
|
|
resp = client.post("/api/permits/upload",
|
|
data=data, content_type="multipart/form-data")
|
|
assert resp.status_code == 200
|
|
result = resp.get_json()
|
|
assert "extracted_text" in result
|
|
assert mock_druppie.call.call_count == 2
|
|
|
|
def test_search_permits(client):
|
|
"""Search should return matching permits."""
|
|
resp = client.get("/api/permits/search?q=test")
|
|
assert resp.status_code == 200
|
|
|
|
def test_list_permits(client):
|
|
"""List should return all permits."""
|
|
resp = client.get("/api/permits")
|
|
assert resp.status_code == 200
|