diff options
author | QuentinAndre <quentin.andre@imt-atlantique.net> | 2021-08-13 22:32:55 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-07-08 09:58:48 +0200 |
commit | 0c57d77eb424de082a576ff679d4ed342a61c01f (patch) | |
tree | 82a8e0b89e472b129ab40f031fc0386753e95ac5 /archaeological_finds/tests.py | |
parent | 313aefcf470df2fe3ad660e568aa8cac308dfcae (diff) | |
download | Ishtar-0c57d77eb424de082a576ff679d4ed342a61c01f.tar.bz2 Ishtar-0c57d77eb424de082a576ff679d4ed342a61c01f.zip |
version before checkbutton
Diffstat (limited to 'archaeological_finds/tests.py')
-rw-r--r-- | archaeological_finds/tests.py | 145 |
1 files changed, 82 insertions, 63 deletions
diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py index f02d0276e..a692cfc9f 100644 --- a/archaeological_finds/tests.py +++ b/archaeological_finds/tests.py @@ -2521,29 +2521,50 @@ class GeomaticTest(FindInit, TestCase): self.assertEqual(base_find.point_source, "P") @staticmethod - def create_cr_with_bfs(operat, geom_cr, list_geom_bf, label_cr, geom_params): - limit, geom, geom_2d, xy, wgs84 = geom_params + def create_cr_with_bfs(ope, geom_ope, geom_cr, list_geom_bf, label_cr): + wgs84 = SpatialReferenceSystem.objects.get(srid=4326) + poly_ope = ("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)))") + point_ope = GEOSGeometry("POINT({} {} {})".format(3.8, 3, 1), srid=4326) + point_2d_ope = GEOSGeometry("POINT({} {})".format(3.8, 3), srid=4326) + xy_ope = 3.8, 3 + poly_cr = ("MULTIPOLYGON(((2 1,5 1,5 5,1 5,2 1),(2 2,2 3,3 3,3 2,2 2))," + "((6 3,9 2,9 4,6 3)))") + point_cr = GEOSGeometry("POINT({} {} {})".format(3.9, 3, 1), srid=4326) + point_2d_cr = GEOSGeometry("POINT({} {})".format(3.9, 3), srid=4326) + xy_cr = 3.9, 3 + poly_bf = ("MULTIPOLYGON(((2 1,4 1,4 4,1 4,2 1),(2 2,2 3,3 3,3 2,2 2))," + "((6 3,9 2,9 4,6 3)))") + point_bf = GEOSGeometry("POINT({} {} {})".format(3.9, 2.9, 1), srid=4326) + point_2d_bf = GEOSGeometry("POINT({} {})".format(3.9, 2.9), srid=4326) + xy_bf = 3.9, 2.9 + + ope.multi_polygon = "SRID=4326;" + poly_ope + ope.multi_polygon_source = "P" + ope.multi_polygon_source_item = str(ope._meta.verbose_name) + ope.spatial_reference_system = wgs84 + if geom_ope == "Point": + ope.point = point_ope + ope.x, ope.y = xy_ope + ope.point_2d = point_2d_ope + ope.save() # needs 2 saves because point_2d is none for multi_polygon + ope = Operation.objects.get(pk=ope.pk) + ope.save() + ope = Operation.objects.get(pk=ope.pk) + default = { "label": label_cr, - "operation": operat, + "operation": ope, } cr = ContextRecord.objects.create(**default) + cr.multi_polygon = "SRID=4326;" + poly_cr + cr.multi_polygon_source = "P" + cr.multi_polygon_source_item = str(ContextRecord._meta.verbose_name) + cr.spatial_reference_system = wgs84 if geom_cr == "Point": - cr.point = geom - cr.multi_polygon = None - cr.multi_polygon_source = None - cr.multi_polygon_source_item = None - cr.x, cr.y = xy - cr.point_2d = geom_2d - cr.spatial_reference_system = wgs84 - else: - cr.point = None - cr.point_source = None - cr.point_2d = None - cr.point_source_item = None - cr.multi_polygon = "SRID=4326;" + limit - cr.multi_polygon_source = "P" - cr.multi_polygon_source_item = str(ContextRecord._meta.verbose_name) + cr.point = point_cr + cr.x, cr.y = xy_cr + cr.point_2d = point_2d_cr cr.save() cr = ContextRecord.objects.get(pk=cr.pk) @@ -2554,28 +2575,26 @@ class GeomaticTest(FindInit, TestCase): "context_record": cr, } bf = models.BaseFind.objects.create(**default) + bf.multi_polygon = "SRID=4326;" + poly_bf + bf.multi_polygon_source = "P" + bf.multi_polygon_source_item = str(bf._meta.verbose_name) + bf.spatial_reference_system = wgs84 if list_geom_bf[i] == "Point": - bf.point = geom - bf.multi_polygon = None - bf.multi_polygon_source = None - bf.multi_polygon_source_item = None - bf.x, bf.y = xy - bf.point_2d = geom_2d - bf.spatial_reference_system = wgs84 - else: - bf.multi_polygon = "SRID=4326;" + limit - bf.point_source = None - bf.point_2d = None - bf.point = None + bf.point = point_bf + bf.x, bf.y = xy_bf + bf.point_2d = point_2d_bf + bf.save() + bf = models.BaseFind.objects.get(pk=bf.pk) + bf.save() + bf = models.BaseFind.objects.get(pk=bf.pk) bf.save() bf = models.BaseFind.objects.get(pk=bf.pk) bfs.append(bf) - '''data = {} + data = {} find = models.Find.objects.create(**data) - print(bf.point_2d) find.base_finds.add(bf) - PROBLEM : point_2d is None''' + find.save() return cr, bfs def test_get_geo_items(self): @@ -2597,7 +2616,7 @@ class GeomaticTest(FindInit, TestCase): geom_params = [limit, geom, geom_2d, xy, wgs84] # with point - cr_pt_pt, bfs = self.create_cr_with_bfs(operation, "Point", ["Point"], "CR Pt Pt", geom_params) + cr_pt_pt, bfs = self.create_cr_with_bfs(operation, "Point", "Point", ["Point"], "CR Pt Pt", geom_params) base_find_pt = bfs[0] dic_pt_t = { @@ -3254,42 +3273,42 @@ class TemplateTest(FindInit, TestCase): if os.path.exists(tpl): os.remove(tpl) +@tag("ui") class SeleniumTestsBaseFinds(SeleniumTests): fixtures = FIND_FIXTURES - def test_geo_items(self): - def test_bf(i): - bf_label = self.selenium.find_element_by_xpath('//tbody/tr[' + str(i) + ']/td[2]').text - print("BF LABEL : ", bf_label) - if bf_label[3:5] == "Pt": - dic_base = dic_point - else: - dic_base = dic_polygon - cr = self.selenium.find_element_by_xpath('//tbody/tr[' + str(i) + ']/td/a[@class="display_details"]') - self.scroll(cr) - cr.click() + def _test_bf(self, i, dic_polygon, dic_point): + bf_label = self.selenium.find_element_by_xpath('//tbody/tr[' + str(i) + ']/td[2]').text + if bf_label[3:5] == "Pt": + dic_base = dic_point + else: + dic_base = dic_polygon + bf = self.selenium.find_element_by_xpath('//tbody/tr[' + str(i) + ']/td/a[@class="display_details"]') + self.scroll(bf) + bf.click() - self.assertMap(dic_base) + self.assertMap(dic_base) - title = self.selenium.find_elements_by_xpath( - '//dl[@class="col-12"]/dt[text()="Display geo items" or text()="Afficher les éléments"]') - dd = '//dl[@class="col-12"]/dd' - label = self.selenium.find_elements_by_xpath(dd + '/label[text()="Display associated features: "]') - disp = self.selenium.find_elements_by_xpath(dd + '/select[@name="display-geo-items"]') + title = self.selenium.find_elements_by_xpath( + '//dl[@class="col-12"]/dt[text()="Display geo items" or text()="Afficher les éléments"]') + dd = '//dl[@class="col-12"]/dd' + label = self.selenium.find_elements_by_xpath(dd + '/label[text()="Display associated features: "]') + disp = self.selenium.find_elements_by_xpath(dd + '/select[@name="display-geo-items"]') - self.assertLess(len(title), 1) - self.assertLess(len(label), 1) - self.assertLess(len(disp), 1) + self.assertLess(len(title), 1) + self.assertLess(len(label), 1) + self.assertLess(len(disp), 1) - self.setUpDefaultGeoItems() + def test_geo_items(self): + self.selenium.implicitly_wait(5) + geo_elements = self.setUpDefaultGeoItems() + poly_bf, centr_bf, pt_bf = geo_elements[2] dic_polygon = { 'type': 'FeatureCollection', 'features': [ {'geometry': - {'coordinates': [ - [[[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]]]], + {'coordinates': poly_bf, 'type': 'MultiPolygon'}, 'properties': {}, 'type': 'Feature'} @@ -3298,16 +3317,16 @@ class SeleniumTestsBaseFinds(SeleniumTests): 'type': 'FeatureCollection', 'features': [ {'geometry': - {'coordinates': [2, 43], + {'coordinates': pt_bf, 'type': 'Point'}, 'properties': {}, 'type': 'Feature'} ]} - print(models.Find.objects.all()) - #TODO: create finds from BaseFinds in setUpDefaultGeoItems for i in range(1, 9): - dropdown = self.selenium.find_element_by_xpath('//a[@class="nav-link dropdown-toggle"]') + dropdown = self.selenium.find_element_by_xpath('//a[@class="nav-link dropdown-toggle"][@id="dropdown-menu-main"]') self.scroll(dropdown) dropdown.click() self.selenium.find_element_by_xpath('//div[@class="dropdown-menu show"]/a[@href="/find_search/"]').click() - test_bf(i)
\ No newline at end of file + self._test_bf(i, dic_polygon, dic_point) + + self.selenium.implicitly_wait(20) |