| from agroscan.api import create_app | |
| class StubClassifier: | |
| def diagnostico_e_tratamento(self, respostas): | |
| if not respostas: | |
| return {"error": "Respostas vazias ou inválidas"} | |
| return { | |
| "diagnostico": "Pragas do Solo", | |
| "tratamento_nivel_1": "Org", | |
| "tratamento_nivel_2": "Gen", | |
| "tratamento_nivel_3": "Agr", | |
| } | |
| def test_health_endpoint(): | |
| app = create_app(classifier=StubClassifier()) | |
| client = app.test_client() | |
| resp = client.get("/health") | |
| assert resp.status_code == 200 | |
| assert resp.get_json()["status"] == "ok" | |
| def test_index_page(): | |
| app = create_app(classifier=StubClassifier()) | |
| client = app.test_client() | |
| resp = client.get("/") | |
| assert resp.status_code == 200 | |
| assert b"AgroScan" in resp.data | |
| def test_diagnostico_endpoint(): | |
| app = create_app(classifier=StubClassifier()) | |
| client = app.test_client() | |
| resp = client.post("/diagnostico", json={"respostas": ["texto"]}) | |
| assert resp.status_code == 200 | |
| assert resp.get_json()["diagnostico"] == "Pragas do Solo" | |
| def test_perguntas_endpoint(): | |
| app = create_app(classifier=StubClassifier()) | |
| client = app.test_client() | |
| resp = client.get("/perguntas") | |
| data = resp.get_json() | |
| assert resp.status_code == 200 | |
| assert isinstance(data.get("perguntas"), list) | |
| assert len(data["perguntas"]) >= 1 | |
| def test_diagnostico_invalido(): | |
| app = create_app(classifier=StubClassifier()) | |
| client = app.test_client() | |
| resp = client.post("/diagnostico", json={"respostas": []}) | |
| assert resp.status_code == 400 | |