This commit is contained in:
2026-04-25 17:22:41 +03:30
parent 569d520a5c
commit aa24fc22b0
124 changed files with 8491 additions and 2582 deletions
@@ -144,6 +144,10 @@ class RecommendationServiceDefaultsTests(TestCase):
"آبیاری قطره‌ای",
)
self.assertEqual(result["simulation_optimizer"]["engine"], "crop_simulation_heuristic")
self.assertEqual(result["mergeMetadata"]["source"], "llm_with_fallback_merge")
self.assertEqual(result["sections"][1]["provenance"]["sectionType"], "list")
self.assertEqual(result["sections"][1]["provenance"]["fieldSources"]["title"], "llm")
self.assertEqual(result["sections"][0]["provenance"]["fieldSources"]["amount"], "fallback")
@patch("rag.services.irrigation.calculate_forecast_water_needs", return_value=[])
@patch("rag.services.irrigation.resolve_kc", return_value=0.9)
@@ -185,6 +189,7 @@ class RecommendationServiceDefaultsTests(TestCase):
self.assertEqual(self.farm.irrigation_method_id, sprinkler.id)
self.assertEqual(result["selected_irrigation_method"]["id"], sprinkler.id)
mock_build_irrigation_method_text.assert_called_once_with("بارانی")
self.assertEqual(result["sections"][0]["provenance"]["fieldSources"]["content"], "llm")
@patch("rag.services.fertilization.build_plant_text", return_value="plant text")
@patch("rag.services.fertilization.build_rag_context", return_value="")
@@ -212,6 +217,8 @@ class RecommendationServiceDefaultsTests(TestCase):
self.assertEqual(result["sections"][0]["fertilizerType"], "20-20-20")
mock_build_plant_text.assert_called_once_with("گوجه‌فرنگی", "رویشی")
self.assertEqual(result["simulation_optimizer"]["engine"], "crop_simulation_heuristic")
self.assertEqual(result["sections"][2]["provenance"]["fieldSources"]["content"], "llm")
self.assertEqual(result["sections"][0]["provenance"]["fieldSources"]["fertilizerType"], "fallback")
@patch("rag.services.fertilization.build_plant_text", return_value="plant text")
@patch("rag.services.fertilization.build_rag_context", return_value="")
@@ -238,3 +245,5 @@ class RecommendationServiceDefaultsTests(TestCase):
self.assertEqual(result["sections"][0]["applicationMethod"], "کودآبیاری")
self.assertEqual(result["sections"][2]["type"], "warning")
self.assertEqual(result["mergeMetadata"]["source"], "fallback_only")
self.assertFalse(result["sections"][0]["provenance"]["llmProvided"])