diff options
Diffstat (limited to 'archaeological_operations/tests.py')
-rw-r--r-- | archaeological_operations/tests.py | 73 |
1 files changed, 72 insertions, 1 deletions
diff --git a/archaeological_operations/tests.py b/archaeological_operations/tests.py index c09e30003..1ab511458 100644 --- a/archaeological_operations/tests.py +++ b/archaeological_operations/tests.py @@ -4395,7 +4395,7 @@ class SeleniumTestsOperations(SeleniumTests): self.assertMap(dic_base) def test_geo_items(self): - geo_elements = self.setUpDefaultGeoItems() + geo_elements, ope_pks = self.setUpDefaultGeoItems() poly_ope, centr_ope, pt_ope = geo_elements[0] dic_poly = { @@ -4425,3 +4425,74 @@ class SeleniumTestsOperations(SeleniumTests): dropdown.click() self.selenium.find_element_by_xpath('//div[@class="dropdown-menu show"]/a[@href="/operation_search/"]').click() self._test_operation(2, dic_pt, geo_elements[1], geo_elements[2]) # point based operation + + def assertPt(self, item, geom): + #self.assertEqual(item.multi_polygon.coords, geom[0].coords) + #self.assertEqual(item.point_2d.coords, geom[2].coords) + print(item, " multi_poly:") + print(item.multi_polygon.coords) + print("geom:") + print(geom[0].coords) + print('result: ', item.multi_polygon.coords == geom[0].coords) + print("point_2d:") + print((round(item.x, 5), round(item.y, 5))) + print("geom:") + print(geom[2].coords) + print('result: ', (round(item.x, 5), round(item.y, 5)) == geom[2].coords) + print('\n') + + def assertPoly(self, item, geom, real_point=None): + #self.assertEqual(item.multi_polygon.coords, geom[0].coords) + #if real_point: + # self.assertEqual((round(item.x, 5), round(item.y, 5)), geom[1].coords) + # else: + # self.assertEqual((round(item.x, 5), round(item.y, 5)), real_point.coords) + print(item, " multi_poly:") + print(item.multi_polygon.coords) + print("geom:") + print(geom[0].coords) + print('result: ', item.multi_polygon.coords==geom[0].coords) + print("point_2d:") + print((round(item.x, 5), round(item.y, 5))) + print("geom:") + point = geom[1].coords + if real_point: + point = real_point.coords + print(point) + print('result: ', (round(item.x, 5), round(item.y, 5)) == point) + print('\n') + + def test_setUpDefaultItems(self): + from django.contrib.gis.geos import GEOSGeometry + from archaeological_operations.models import Operation + base_geoms, ope_pks = self.setUpDefaultGeoItems() + geoms = [] + for geom in base_geoms: + poly = GEOSGeometry(json.dumps({'type': 'MultiPolygon', 'coordinates': geom[0]})) + centr = GEOSGeometry(json.dumps({'type': 'Point', 'coordinates': geom[1]})) + pt = GEOSGeometry(json.dumps({'type': 'Point', 'coordinates': geom[2]})) + geoms.append([poly, centr, pt]) + ope_pt = Operation.objects.get(pk=ope_pks[0]) + self.assertPt(ope_pt, geoms[0]) + ope_poly = Operation.objects.get(pk=ope_pks[1]) + self.assertPoly(ope_poly, geoms[0]) + + cr_poly_poly = ope_poly.context_record.all()[0] + self.assertPoly(cr_poly_poly, geoms[1]) + cr_poly_pt = ope_poly.context_record.all()[1] + self.assertPt(cr_poly_pt, geoms[1]) + cr_pt_poly = ope_pt.context_record.all()[0] + self.assertPoly(cr_pt_poly, geoms[1], geoms[0][2]) + cr_pt_pt = ope_pt.context_record.all()[1] + self.assertPt(cr_pt_pt, geoms[1]) + + self.assertPt(cr_pt_pt.base_finds.all()[0], geoms[2]) + self.assertPoly(cr_pt_pt.base_finds.all()[1], geoms[2], geoms[1][2]) + self.assertPt(cr_poly_pt.base_finds.all()[0], geoms[2]) + self.assertPoly(cr_poly_pt.base_finds.all()[1], geoms[2], geoms[1][2]) + self.assertPt(cr_pt_poly.base_finds.all()[0], geoms[2]) + self.assertPoly(cr_pt_poly.base_finds.all()[1], geoms[2], geoms[0][2]) + self.assertPt(cr_poly_poly.base_finds.all()[0], geoms[2]) + self.assertPoly(cr_poly_poly.base_finds.all()[1], geoms[2]) + + |