summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archaeological_finds/tests.py358
-rw-r--r--archaeological_operations/tests.py16
-rw-r--r--ishtar_common/tests.py2
3 files changed, 10 insertions, 366 deletions
diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py
index 16e4b3304..f79ec7dd2 100644
--- a/archaeological_finds/tests.py
+++ b/archaeological_finds/tests.py
@@ -81,7 +81,6 @@ from archaeological_operations.models import Operation, OperationType
from ishtar_common import forms_common
from ishtar_common.tests import (
- GeomaticTest as BaseGeomaticTest,
WizardTest,
WizardTestFormData as FormData,
TestCase,
@@ -2249,363 +2248,6 @@ class TreatmentTest(FindInit, TestCase):
self.assertEqual(initial_find.upstream_treatment, None)
-@tag("gis")
-class GeomaticTest(FindInit, TestCase):
- fixtures = FIND_FIXTURES
- model = models.Find
-
- def setUp(self):
- self.create_finds(data_base={"label": "Find 1"}, force=True)
- self.password = "mypassword"
- self.username = "myuser"
- User.objects.create_superuser(self.username, "myemail@test.com", self.password)
- self.client = Client()
- self.client.login(username=self.username, password=self.password)
-
- def test_point_precision(self):
- profile, created = IshtarSiteProfile.objects.get_or_create(
- slug="default", active=True
- )
- profile.mapping = True
- profile.save()
- wgs84 = SpatialReferenceSystem.objects.get(srid=4326)
- find = self.finds[0]
- base_find = find.base_finds.all()[0]
- self.assertEqual(base_find.x, None)
-
- base_find.x, base_find.y = 33.12999, 42.78945
- base_find.spatial_reference_system = wgs84
- base_find.save()
-
- find = base_find.find.all()[0]
- response = self.client.get(reverse("show-find", kwargs={"pk": find.pk}))
- self.assertIn(b"33.12999", response.content)
-
- profile.point_precision = 2
- profile.save()
-
- response = self.client.get(reverse("show-find", kwargs={"pk": find.pk}))
- self.assertIn(b"33.13", response.content)
-
- def test_update_container_localisation_on_warehouse_update(self):
- profile, created = IshtarSiteProfile.objects.get_or_create(
- slug="default", active=True
- )
- profile.mapping = True
- profile.save()
- wgs84 = SpatialReferenceSystem.objects.get(srid=4326)
-
- find = self.finds[0]
- base_find = find.base_finds.all()[0]
- self.assertEqual(base_find.x, None)
-
- operation = Operation.objects.get(pk=base_find.context_record.operation.pk)
- operation.x, operation.y = 33, 42
- operation.spatial_reference_system = wgs84
- operation.save()
-
- # an update is pending for the linked context record
- q = ContextRecord.objects.filter(
- pk=base_find.context_record.pk, need_update=True
- )
- self.assertEqual(q.count(), 1)
-
- # process pending update
- context_record = q.all()[0]
- self.assertEqual(context_record.x, None) # update has to be done
- context_record.skip_history_when_saving = True
- context_record._no_move = True
- context_record.save()
- context_record = ContextRecord.objects.get(pk=context_record.pk)
- self.assertEqual(context_record.x, 33)
-
- # then an update is pending for the linked base find
- q = models.BaseFind.objects.filter(pk=base_find.pk, need_update=True)
- self.assertEqual(q.count(), 1)
-
- # process pending update
- bf = q.all()[0]
- self.assertEqual(bf.x, None) # update has to be done
- bf.skip_history_when_saving = True
- bf._no_move = True
- bf.save()
- bf = models.BaseFind.objects.get(pk=bf.pk)
- self.assertEqual(bf.x, 33)
-
- @tag("not-setup-py")
- def test_post_save_point(self):
- find = self.finds[0]
- base_find = find.base_finds.all()[0]
-
- srs, __ = SpatialReferenceSystem.objects.get_or_create(
- txt_idx="wgs84",
- defaults={"srid": 4326, "label": "WGS84", "auth_name": "EPSG"},
- )
- profile = get_current_profile()
- profile.mapping = True
- profile.save()
-
- # db source
- geom = GEOSGeometry("POINT({} {} {})".format(2, 43, 1), srid=4326)
- base_find.point = geom
- base_find.save()
- base_find = models.BaseFind.objects.get(pk=base_find.pk)
- self.assertIsNotNone(base_find.point)
- self.assertIsNotNone(base_find.point_2d)
- self.assertIsNotNone(base_find.x)
- self.assertIsNotNone(base_find.y)
- self.assertIsNotNone(base_find.z)
- self.assertEqual(base_find.point_source, "P") # precise
- self.assertEqual(
- base_find.point_source_item, str(models.BaseFind._meta.verbose_name)
- )
-
- # re-save do not change sources
- base_find.save()
- base_find = models.BaseFind.objects.get(pk=base_find.pk)
- self.assertIsNotNone(base_find.point)
- self.assertIsNotNone(base_find.point_2d)
- self.assertIsNotNone(base_find.x)
- self.assertIsNotNone(base_find.y)
- self.assertIsNotNone(base_find.z)
- self.assertEqual(base_find.point_source, "P") # precise
- self.assertEqual(
- base_find.point_source_item, str(models.BaseFind._meta.verbose_name)
- )
-
- # form input
- base_find.x = 2
- base_find.y = 3
- base_find.z = 4
- base_find.spatial_reference_system = srs
- base_find.save()
- base_find = models.BaseFind.objects.get(pk=base_find.pk)
- self.assertIsNotNone(base_find.point_2d)
- self.assertIsNotNone(base_find.point)
- self.assertEqual(base_find.point_source, "P") # precise
- self.assertEqual(
- base_find.point_source_item, str(models.BaseFind._meta.verbose_name)
- )
- # re-save do not change sources
- base_find.save()
- base_find = models.BaseFind.objects.get(pk=base_find.pk)
- self.assertIsNotNone(base_find.point_2d)
- self.assertIsNotNone(base_find.point)
- self.assertEqual(base_find.point_source, "P") # precise
- self.assertEqual(
- base_find.point_source_item, str(models.BaseFind._meta.verbose_name)
- )
-
- # reinit
- base_find.x = None
- base_find.y = None
- base_find.z = None
- base_find.save()
- base_find = models.BaseFind.objects.get(pk=base_find.pk)
- self.assertIsNone(base_find.point_2d)
- self.assertIsNone(base_find.point)
- self.assertEqual(base_find.point_source, None)
- self.assertEqual(base_find.point_source_item, None)
-
- profile, created = IshtarSiteProfile.objects.get_or_create(
- slug="default", active=True
- )
- profile.use_town_for_geo = True
- profile.save()
-
- # geom from context record town
- center = "POINT(6 10)"
- limit = (
- "MULTIPOLYGON(((1 1,5 1,5 5,1 5,1 1),(2 2,2 3,3 3,3 2,2 2)),"
- "((6 3,9 2,9 4,6 3)))"
- )
- cr = ContextRecord.objects.get(pk=base_find.context_record.pk)
- t = cr.town
- t.center = "SRID=4326;" + center
- t.limit = "SRID=4326;" + limit
- t.save()
- cr = ContextRecord.objects.get(pk=base_find.context_record.pk)
- base_find = models.BaseFind.objects.get(pk=base_find.pk)
- base_find.save()
- base_find = models.BaseFind.objects.get(pk=base_find.pk)
- bfp = GEOSGeometry(base_find.point_2d.ewkt)
- bfp.transform(4326)
- tp = GEOSGeometry(cr.town.center.ewkt)
- tp.transform(4326)
- self.assertLess(bfp.distance(tp), 0.0001)
- self.assertEqual(base_find.multi_polygon, cr.town.limit)
- self.assertEqual(base_find.point_source, "T") # town
- self.assertEqual(
- base_find.point_source_item, str(ContextRecord._meta.verbose_name)
- )
- # re-save do not change sources
- base_find.save()
- base_find = models.BaseFind.objects.get(pk=base_find.pk)
- bfp = GEOSGeometry(base_find.point_2d.ewkt)
- bfp.transform(4326)
- tp = GEOSGeometry(cr.town.center.ewkt)
- tp.transform(4326)
- self.assertTrue(bfp.distance(tp) < 0.0001)
- self.assertEqual(base_find.multi_polygon, cr.town.limit)
- self.assertEqual(base_find.point_source, "T") # town
- self.assertEqual(
- base_find.point_source_item, str(ContextRecord._meta.verbose_name)
- )
-
- # geom from context record
- center = "POINT(8 6)"
- cr = ContextRecord.objects.get(pk=base_find.context_record.pk)
- cr.point_2d = "SRID=4326;" + center
- cr.point_source = "P"
- cr.point_source_item = str(ContextRecord._meta.verbose_name)
- cr.save()
- cr = ContextRecord.objects.get(pk=base_find.context_record.pk)
- cr.x = cr.point_2d.x
- cr.y = cr.point_2d.y
- cr.save()
- cr = ContextRecord.objects.get(pk=base_find.context_record.pk)
- base_find = models.BaseFind.objects.get(pk=base_find.pk)
- base_find.save()
- base_find = models.BaseFind.objects.get(pk=base_find.pk)
- bfp = GEOSGeometry(base_find.point_2d.ewkt)
- bfp.transform(4326)
- tp = GEOSGeometry(cr.point_2d.ewkt)
- tp.transform(4326)
- self.assertTrue(bfp.distance(tp) < 0.0001)
- self.assertEqual(base_find.multi_polygon, cr.multi_polygon)
- self.assertEqual(base_find.point_source, "P") # precise
- self.assertEqual(
- base_find.point_source_item, str(ContextRecord._meta.verbose_name)
- )
-
- # overload of coordinates by form
- base_find = models.BaseFind.objects.get(pk=base_find.pk)
- base_find.x = 5
- base_find.y = 6
- base_find.z = 1
- base_find.spatial_reference_system = srs
- base_find.save()
-
- base_find = models.BaseFind.objects.get(pk=base_find.pk)
- self.assertIsNotNone(base_find.point_2d)
- self.assertIsNotNone(base_find.point)
- self.assertEqual(base_find.point_2d.wkt, "POINT (5 6)")
- self.assertEqual(base_find.point_source, "P") # precise
- self.assertEqual(
- base_find.point_source_item, str(models.BaseFind._meta.verbose_name)
- )
- # re-save do not change sources
- base_find.save()
- base_find = models.BaseFind.objects.get(pk=base_find.pk)
- self.assertIsNotNone(base_find.point_2d)
- self.assertIsNotNone(base_find.point)
- self.assertEqual(base_find.point_2d.wkt, "POINT (5 6)")
- self.assertEqual(base_find.point_source, "P") # precise
- self.assertEqual(
- base_find.point_source_item, str(models.BaseFind._meta.verbose_name)
- )
-
- def test_post_save_polygon(self):
- profile = get_current_profile()
- profile.mapping = True
- profile.save()
-
- find = self.finds[0]
- base_find = find.base_finds.all()[0]
- srs, __ = SpatialReferenceSystem.objects.get_or_create(
- txt_idx="wgs84",
- defaults={"srid": 4326, "label": "WGS84", "auth_name": "EPSG"},
- )
-
- base_find = models.BaseFind.objects.get(pk=base_find.pk)
-
- # get centroid geom from poly
- limit = (
- "MULTIPOLYGON(((1 1,5 1,5 5,1 5,1 1),(2 2,2 3,3 3,3 2,2 2)),"
- "((6 3,9 2,9 4,6 3)))"
- )
- base_find.multi_polygon = "SRID=4326;" + limit
- base_find.point_source = None
- base_find.point_2d = None
- base_find.point = None
- base_find.save()
-
- base_find = models.BaseFind.objects.get(pk=base_find.pk)
- self.assertIsNotNone(base_find.point_2d)
- self.assertEqual(base_find.point_source, "M") # from multi polygon
- # resaving do not change source
- base_find.save()
- base_find = models.BaseFind.objects.get(pk=base_find.pk)
- self.assertIsNotNone(base_find.point_2d)
- self.assertEqual(base_find.point_source, "M") # from multi polygon
-
- # geom from context record
- limit = (
- "MULTIPOLYGON(((1 1,5 1,5 5,1 5,1 1),(2 2,2 3,3 3,3 2,2 2)),"
- "((6 3,9 2,9 4,6 3)))"
- )
- cr = ContextRecord.objects.get(pk=base_find.context_record.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=base_find.context_record.pk)
- base_find = models.BaseFind.objects.get(pk=base_find.pk)
- base_find.multi_polygon_source_item = "hop"
- base_find.save()
- base_find = models.BaseFind.objects.get(pk=base_find.pk)
- self.assertEqual(base_find.multi_polygon, cr.multi_polygon)
- self.assertEqual(base_find.multi_polygon_source, "P") # precise
- self.assertEqual(
- base_find.multi_polygon_source_item, str(ContextRecord._meta.verbose_name)
- )
-
- base_find = models.BaseFind.objects.get(pk=base_find.pk)
- base_find.point_source = None
- base_find.spatial_reference_system = srs
- base_find.x = "42"
- base_find.y = "3"
- base_find.save()
- base_find = models.BaseFind.objects.get(pk=base_find.pk)
- self.assertEqual(base_find.point_2d.ewkt, "SRID=4326;POINT (42 3)")
- self.assertEqual(base_find.point_source, "P")
- # resaving do not change source
- base_find.save()
- base_find = models.BaseFind.objects.get(pk=base_find.pk)
- self.assertEqual(base_find.point_2d.ewkt, "SRID=4326;POINT (42 3)")
- self.assertEqual(base_find.point_source, "P")
-
- def test_get_geo_items(self):
- # profile = models.get_current_profile()
- profile = get_current_profile()
- profile.mapping = True
- profile.save()
-
- geoms, pks = BaseGeomaticTest.setUpDefaultGeoItems(self.user)
- dics = BaseGeomaticTest.geojson_geo_items(geoms, pks, test_get_geo_items=True)
- url_pts = reverse("api-get-geo-points")
- url_polys = reverse("api-get-geo-polygons")
-
- for label in dics.keys():
- dic = dics[label]
- get_pk = dic["get_pk"]
- pk = pks[label]
-
- self.assertEqual(dic["res_polys"], dic["get_polys"])
- response = self.client.get(url_polys + get_pk + "0")
- self.assertEqual(response.status_code, 404)
- response = self.client.get(url_polys + get_pk + str(pk))
- self.assertEqual(response.status_code, 200)
- self.assertEqual(dic["get_polys"], json.loads(response.content))
-
- self.assertEqual(dic["get_pts"], dic["res_pts"])
- response = self.client.get(url_pts + get_pk + "0")
- self.assertEqual(response.status_code, 404)
- response = self.client.get(url_pts + get_pk + str(pk))
- self.assertEqual(response.status_code, 200)
- self.assertEqual(dic["get_pts"], json.loads(response.content))
-
-
class AutocompleteTest(AutocompleteTestBase, TestCase):
fixtures = FIND_FIXTURES
models = [
diff --git a/archaeological_operations/tests.py b/archaeological_operations/tests.py
index bfe8e3b11..5980a931a 100644
--- a/archaeological_operations/tests.py
+++ b/archaeological_operations/tests.py
@@ -193,7 +193,7 @@ class ImportTest(object):
"associated_group": group.pk,
"csv_sep": sep,
}
- form = forms_common.BaseImportForm(
+ form = forms_common.NewImportForm(
data=post_dict, files=file_dict, user=self.user
)
form.is_valid()
@@ -1800,9 +1800,11 @@ class ParcelTest(ImportTest, TestCase):
post_response = c.post("/operation-parcels-modify/" + str(operation.pk) + "/", data)
self.assertEqual(post_response.status_code, 200)
- self.assertContains(post_response, _("This parcel is associated with a context "
- "record. It can&#39;t be deleted.") # How to convert '&#39;' to ' ?
- )
+ res = post_response.content.decode("utf8")
+ expected = str(
+ _("This parcel is associated with a context record. It can't be deleted.")
+ ).replace("'", "&#39;")
+ self.assertIn(expected, res)
parcels = models.Parcel.objects.all()
self.assertEqual(parcels.count(), 1)
@@ -2675,7 +2677,7 @@ class CustomFormTest(TestCase, OperationInitTest):
step = "selec-operation_modification"
cls_wiz.wizard_post(c, url, step, {"pk": self.operations[0].pk})
- step = "collaborators-operation_modification"
+ step = "relations-operation_modification"
data = {
"{}{}-current_step".format(cls_wiz.url_name, cls_wiz.wizard_name): [step],
}
@@ -2683,7 +2685,7 @@ class CustomFormTest(TestCase, OperationInitTest):
self.assertNotEqual(response.status_code, 404)
CustomForm.objects.create(
name="Test2",
- form="operation-020-collaborators",
+ form="operation-080-relations",
available=True,
apply_to_all=True,
enabled=False,
@@ -4693,7 +4695,7 @@ class ApiTest(OperationInitTest, APITestCase):
response = self.client.post(url, params, follow=True)
self.assertIn(
- str(_("is not a valid JSON message")),
+ str(_("is not a valid JSON message")).replace("'", "&#39;"),
response.content.decode(),
)
diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py
index 7671f2fe4..e1290b3de 100644
--- a/ishtar_common/tests.py
+++ b/ishtar_common/tests.py
@@ -2932,7 +2932,7 @@ class GeoVectorFormTest(TestCase):
edited_geo = models.GeoVectorData.objects.get(
name="Test Geo {}".format(geom_type)
)
- self.assertRedirects(response, "/geo/edit/{}/".format(edited_geo.pk))
+ self.assertRedirects(response, f"/display/operation/{self.operation.pk}/")
self.assertEqual(edited_geo.name, "Test Geo {}".format(geom_type))
self.assertEqual(edited_geo.origin, self.origin)
self.assertEqual(edited_geo.data_type, self.data_type)