summaryrefslogtreecommitdiff
path: root/ishtar_common/tests.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2022-10-06 15:08:00 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2022-12-12 12:23:18 +0100
commitf962ebab43441a1286fa17d882a0935720bb560c (patch)
tree244d0a52b1253e2580ab25d71dcb4d0f84f141fc /ishtar_common/tests.py
parent8d5a3dab0263aa1a6ceae34254bbf4aaffd2087a (diff)
downloadIshtar-f962ebab43441a1286fa17d882a0935720bb560c.tar.bz2
Ishtar-f962ebab43441a1286fa17d882a0935720bb560c.zip
Geodata: cascade add
Diffstat (limited to 'ishtar_common/tests.py')
-rw-r--r--ishtar_common/tests.py102
1 files changed, 102 insertions, 0 deletions
diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py
index ae115f654..74e746c61 100644
--- a/ishtar_common/tests.py
+++ b/ishtar_common/tests.py
@@ -3316,6 +3316,108 @@ class GeoVectorFormTest(TestCase):
)
+class GeoVectorTest(TestCase):
+ fixtures = FIND_FIXTURES
+
+ def setUp(self):
+ # accounts
+ self.username, self.password, self.user = create_superuser()
+
+ # operation, context record, find
+ operation_type = models.OperationType.objects.get(txt_idx="arch_diagnostic")
+ data = {
+ "year": 2010,
+ "operation_type_id": operation_type.pk,
+ "history_modifier": self.user,
+ "code_patriarche": 99999
+ }
+ Operation = apps.get_model("archaeological_operations", "Operation")
+ self.operation = Operation.objects.create(**data)
+ data = {
+ "operation_id": self.operation.pk,
+ "label": "Context record",
+ "history_modifier": self.user,
+ }
+ ContextRecord = apps.get_model("archaeological_context_records",
+ "ContextRecord")
+ self.context_record = ContextRecord.objects.create(**data)
+ data = {
+ "context_record_id": self.context_record.pk,
+ "label": "Find",
+ "history_modifier": self.user,
+ }
+ BaseFind = apps.get_model("archaeological_finds", "BaseFind")
+ self.base_find = BaseFind.objects.create(**data)
+
+ # for geodata
+ self.ct = ContentType.objects.get_for_model(models.GeoVectorData)
+ self.origin = models.GeoOriginType.objects.get(
+ txt_idx="georeferencement",
+ )
+ self.data_type = models.GeoDataType.objects.get(
+ txt_idx="operation-center",
+ )
+ self.provider = models.GeoProviderType.objects.get(
+ txt_idx="france-ign",
+ )
+ self.srs, _ = models.SpatialReferenceSystem.objects.get_or_create(
+ label="EPSG-27572",
+ txt_idx="epsg-27572",
+ srid=2154
+ )
+ self.app_source = "archaeological_operations"
+ self.model_source = "operation"
+ self.source_pk = self.operation.pk
+ self.source_content_type_pk = ContentType.objects.get(
+ app_label=self.app_source,
+ model=self.model_source
+ ).pk
+
+ def _reinit_objects(self):
+ # get object from db
+ Operation = apps.get_model("archaeological_operations", "Operation")
+ self.operation = Operation.objects.get(pk=self.operation.pk)
+ ContextRecord = apps.get_model("archaeological_context_records",
+ "ContextRecord")
+ self.context_record = ContextRecord.objects.get(pk=self.context_record.pk)
+ BaseFind = apps.get_model("archaeological_finds", "BaseFind")
+ self.base_find = BaseFind.objects.get(pk=self.base_find.pk)
+
+ def _create_geodata(self):
+ return models.GeoVectorData.objects.create(
+ source_content_type_id=self.source_content_type_pk,
+ source_id=self.source_pk,
+ name="Test geo",
+ origin=self.origin,
+ data_type=self.data_type,
+ provider=self.provider,
+ comment="This is a comment."
+ )
+
+ def test_cascade_add(self):
+ self.assertIsNone(self.operation.main_geodata)
+ self.assertEqual(self.operation.geodata.count(), 0)
+ self.assertIsNone(self.context_record.main_geodata)
+ self.assertEqual(self.context_record.geodata.count(), 0)
+ self.assertIsNone(self.base_find.main_geodata)
+ self.assertEqual(self.base_find.geodata.count(), 0)
+
+ geo_vector = self._create_geodata()
+ self.operation.geodata.add(geo_vector)
+
+ self._reinit_objects()
+ self.assertEqual(self.operation.geodata.count(), 1)
+ self.assertEqual(self.operation.main_geodata, geo_vector)
+ self.assertEqual(self.context_record.geodata.count(), 1)
+ self.assertEqual(self.context_record.main_geodata, geo_vector)
+ self.assertEqual(self.base_find.geodata.count(), 1)
+ self.assertEqual(self.base_find.main_geodata, geo_vector)
+
+ # test geo item remove
+ # test town add
+ # test town remove
+
+
class NewItems(TestCase):
fixtures = COMMON_FIXTURES