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