diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-11-08 18:22:50 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-12-12 12:23:19 +0100 |
commit | cde3da21880c1242415b488b2e4563618387b0e7 (patch) | |
tree | 793c98bb5f70c37fb7930ea0e42dd551b50d2291 | |
parent | 90c4e9f593912e9c28b12b5c4582adbcd7291245 (diff) | |
download | Ishtar-cde3da21880c1242415b488b2e4563618387b0e7.tar.bz2 Ishtar-cde3da21880c1242415b488b2e4563618387b0e7.zip |
Remove deprecated geo test - Fix tests for v4
-rw-r--r-- | archaeological_finds/tests.py | 358 | ||||
-rw-r--r-- | archaeological_operations/tests.py | 16 | ||||
-rw-r--r-- | ishtar_common/tests.py | 2 |
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't be deleted.") # How to convert ''' to ' ? - ) + res = post_response.content.decode("utf8") + expected = str( + _("This parcel is associated with a context record. It can't be deleted.") + ).replace("'", "'") + 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("'", "'"), 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) |