This commit is contained in:
2026-05-05 21:02:12 +03:30
parent 5301071df5
commit 1679825ae2
47 changed files with 1347 additions and 1403 deletions
+25 -1
View File
@@ -7,7 +7,12 @@ from rest_framework.test import APIClient
from location_data.models import SoilDepthData, SoilLocation
from farm_data.models import PlantCatalogSnapshot, SensorData, SensorParameter
from farm_data.services import assign_farm_plants_from_backend_ids
from farm_data.services import (
assign_farm_plants_from_backend_ids,
get_canonical_farm_record,
get_runtime_plant_for_farm,
list_runtime_plants_for_farm,
)
from irrigation.models import IrrigationMethod
from weather.models import WeatherForecast
@@ -77,6 +82,25 @@ class FarmDetailApiTests(TestCase):
)
assign_farm_plants_from_backend_ids(self.farm, [self.plant2.backend_plant_id, self.plant1.backend_plant_id])
def test_canonical_plant_runtime_path_uses_assignments_not_legacy_relation(self):
farm = get_canonical_farm_record(str(self.farm_uuid))
self.assertIsNotNone(farm)
self.assertEqual([plant.name for plant in list_runtime_plants_for_farm(farm)], ["خیار", "گوجه‌فرنگی"])
self.assertEqual(get_runtime_plant_for_farm(farm).name, "خیار")
def test_assignment_sync_reconciles_legacy_relation_for_transition(self):
self.assertEqual(list(self.farm.plants.values_list("name", flat=True)), ["خیار", "گوجه‌فرنگی"])
def test_runtime_plant_lookup_resolves_by_name_from_canonical_assignments(self):
farm = get_canonical_farm_record(str(self.farm_uuid))
resolved = get_runtime_plant_for_farm(farm, plant_name="گوجه‌فرنگی")
self.assertIsNotNone(resolved)
self.assertEqual(resolved.name, "گوجه‌فرنگی")
self.assertEqual(resolved.id, self.plant1.backend_plant_id)
def test_returns_farm_detail_and_prioritizes_sensor_metrics_over_soil(self):
response = self.client.get(f"/api/farm-data/{self.farm_uuid}/detail/")