This commit is contained in:
2026-05-02 14:03:48 +03:30
parent f704e1188c
commit ef593153ba
14 changed files with 1286 additions and 18 deletions
@@ -76,6 +76,10 @@ class PlantGrowthSimulationApiTests(TestCase):
"weather": self.weather,
"soil_parameters": {"SMFCF": 0.34, "SMW": 0.14, "RDMSOL": 120.0},
"site_parameters": {"WAV": 40.0},
"irrigation_recommendation": {"events": [{"date": "2026-04-02", "amount": 2.5}]},
"fertilization_recommendation": {
"events": [{"date": "2026-04-02", "N_amount": 45, "N_recovery": 0.7}]
},
"page_size": 2,
}
)
@@ -95,12 +99,17 @@ class PlantGrowthSimulationApiTests(TestCase):
"plant_name": self.plant.name,
"dynamic_parameters": ["DVS", "LAI"],
"weather": self.weather,
"irrigation_recommendation": {"events": [{"date": "2026-04-02", "amount": 2.5}]},
"fertilization_recommendation": {
"events": [{"date": "2026-04-02", "N_amount": 45, "N_recovery": 0.7}]
},
},
format="json",
)
self.assertEqual(response.status_code, 202)
self.assertEqual(response.json()["data"]["task_id"], "growth-task-1")
self.assertEqual(mock_delay.call_args.args[0]["irrigation_recommendation"]["events"][0]["amount"], 2.5)
def test_queue_api_returns_400_for_missing_weather_and_farm_uuid(self):
response = self.client.post(
@@ -438,6 +447,8 @@ class PlantGrowthSimulationApiTests(TestCase):
response = self.client.get(
"/yield-harvest-summary/?farm_uuid=550e8400-e29b-41d4-a716-446655440000"
"&season_year=1404&crop_name=wheat&include_narrative=true"
"&irrigation_recommendation=%7B%22events%22%3A%5B%7B%22date%22%3A%222026-04-25%22%2C%22amount%22%3A2.5%7D%5D%7D"
"&fertilization_recommendation=%7B%22events%22%3A%5B%7B%22date%22%3A%222026-04-20%22%2C%22N_amount%22%3A45%2C%22N_recovery%22%3A0.7%7D%5D%7D"
)
self.assertEqual(response.status_code, 200)
@@ -449,6 +460,23 @@ class PlantGrowthSimulationApiTests(TestCase):
season_year="1404",
crop_name="wheat",
include_narrative=True,
irrigation_recommendation={
"events": [
{
"date": "2026-04-25",
"amount": 2.5,
}
]
},
fertilization_recommendation={
"events": [
{
"date": "2026-04-20",
"N_amount": 45,
"N_recovery": 0.7,
}
]
},
)
def test_yield_harvest_summary_api_returns_400_for_missing_farm_uuid(self):
@@ -456,3 +484,12 @@ class PlantGrowthSimulationApiTests(TestCase):
self.assertEqual(response.status_code, 400)
self.assertEqual(response.json()["code"], 400)
def test_yield_harvest_summary_api_returns_400_for_invalid_json_recommendations(self):
response = self.client.get(
"/yield-harvest-summary/?farm_uuid=550e8400-e29b-41d4-a716-446655440000"
"&irrigation_recommendation=%7Binvalid-json%7D"
)
self.assertEqual(response.status_code, 400)
self.assertEqual(response.json()["code"], 400)