| from app.utils.climate_intelligence import ( |
| build_climate_intelligence_context, |
| extract_nigeria_location, |
| infer_crop_and_growth_stage, |
| ) |
|
|
|
|
| def test_build_climate_intelligence_context_contains_climate_risk_and_recommendations(): |
| context = build_climate_intelligence_context( |
| latitude=10.0, |
| longitude=7.0, |
| crop="maize", |
| growth_stage="pre-planting", |
| days=7, |
| ) |
|
|
| assert isinstance(context, dict) |
| assert "location" in context |
| assert "current_weather" in context |
| assert "forecast" in context |
| assert "climate_risk" in context |
| assert "recommendations" in context |
| assert context["location"]["country"] == "Nigeria" |
| assert context["climate_risk"] in {"low", "medium", "high"} |
| assert isinstance(context["recommendations"], list) |
| assert context["recommendations"] |
|
|
|
|
| def test_extract_nigeria_location_handles_lagos_and_ikeja(): |
| assert extract_nigeria_location("What is the weather like in Lagos?")[0] == "Lagos" |
| assert extract_nigeria_location("Ikeja weather forecast")[0] == "Ikeja" |
|
|
|
|
| def test_infer_crop_and_growth_stage_handles_farm_questions(): |
| crop, stage = infer_crop_and_growth_stage("Should I plant maize in Kaduna before the rains?") |
| assert crop == "maize" |
| assert stage in {"pre-planting", "planting"} |
|
|