summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQuentinAndre <quentin.andre@imt-atlantique.net>2021-07-10 10:08:30 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2021-09-01 12:36:46 +0200
commit374340ec80a23461352efcf79d4e3c3fd0d520e1 (patch)
treec6848a6ec1d4b135eb693a022de28b9f0846aad8
parentc683ae15a9346a94068265c0ae10060988448d32 (diff)
downloadIshtar-374340ec80a23461352efcf79d4e3c3fd0d520e1.tar.bz2
Ishtar-374340ec80a23461352efcf79d4e3c3fd0d520e1.zip
multiple base finds
-rw-r--r--archaeological_finds/tests.py66
1 files changed, 65 insertions, 1 deletions
diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py
index 1c85c2a9a..6982e6208 100644
--- a/archaeological_finds/tests.py
+++ b/archaeological_finds/tests.py
@@ -2533,7 +2533,7 @@ class GeomaticTest(FindInit, TestCase):
self.assertEqual(dic, res)
# test API with point
- find = base_find_pt.find.all()[0]
+ find = models.BaseFind.objects.all()[0]
response = self.client.get(reverse("api-get-geo-point", kwargs={"pk": 0}))
self.assertEqual(response.status_code, 404)
response = self.client.get(reverse("api-get-geo-point", kwargs={"pk": find.pk}))
@@ -2784,6 +2784,70 @@ class GeomaticTest(FindInit, TestCase):
self.assertEqual(response.status_code, 200)
self.assertIn(json.dumps(dic2).encode("utf-8"), response.content)
+ # context record is a polygon, one base find is a polygon and the other a point
+ cr = ContextRecord.objects.get(pk=base_find.context_record.pk)
+ pk = cr.pk
+ cr.multi_polygon = "SRID=4326;" + limit
+ cr.multi_polygon_source = "P"
+ cr.multi_polygon_source_item = str(ContextRecord._meta.verbose_name)
+ cr.save()
+ cr = ContextRecord.objects.get(pk=pk)
+
+ default = {
+ "label": "Find 2",
+ "history_modifier": base_find.history_modifier,
+ "context_record": base_find.context_record,
+ }
+ base_find_pt = models.BaseFind.objects.create(**default)
+ base_find_pt.point = geom
+ base_find_pt.multi_polygon = None
+ base_find_pt.save()
+ base_find_pt = models.BaseFind.objects.get(pk=base_find_pt.pk)
+ self.base_finds.append(base_find_pt)
+
+ dict_poly["properties"] = {
+ "associated base finds": {
+ "Find 2": dic2_copy,
+ "Find 1": dict_poly_copy,
+ }
+ }
+ self.assertEqual(dict_poly, cr.get_geo_items(True))
+
+ dict_centroid["properties"] = {
+ "associated base finds": {
+ "Find 2": dic_copy,
+ "Find 1": dict_centroid_copy,
+ }
+ }
+ self.assertEqual(dict_centroid, cr.get_geo_items(False))
+
+ # test of API for multipolygon context record with a multipolygon and a point as base find
+ response = self.client.get(
+ reverse("api-get-geo-points-from-context", kwargs={"context_record_pk": 0})
+ )
+ self.assertEqual(response.status_code, 404)
+ response = self.client.get(
+ reverse(
+ "api-get-geo-points-from-context", kwargs={"context_record_pk": cr.pk}
+ )
+ )
+ self.assertEqual(response.status_code, 200)
+ self.assertIn(json.dumps(dict_centroid).encode("utf-8"), response.content)
+
+ response = self.client.get(
+ reverse(
+ "api-get-geo-polygons-from-context", kwargs={"context_record_pk": 0}
+ )
+ )
+ self.assertEqual(response.status_code, 404)
+ response = self.client.get(
+ reverse(
+ "api-get-geo-polygons-from-context", kwargs={"context_record_pk": cr.pk}
+ )
+ )
+ self.assertEqual(response.status_code, 200)
+ self.assertIn(json.dumps(dict_poly).encode("utf-8"), response.content)
+
class AutocompleteTest(AutocompleteTestBase, TestCase):