diff options
author | Quentin André <quentin.andre@imt-atlantique.net> | 2021-08-24 21:38:46 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-07-08 09:58:48 +0200 |
commit | 7e4ad702275fccc2772f083e046d31d35c045131 (patch) | |
tree | e1d279e9bbf539714e76632267c784306f7c6f7a /archaeological_context_records/tests.py | |
parent | b2ea40d91efaf82ca03196bf9527383121a9edf7 (diff) | |
download | Ishtar-7e4ad702275fccc2772f083e046d31d35c045131.tar.bz2 Ishtar-7e4ad702275fccc2772f083e046d31d35c045131.zip |
ui tests without base feature point working
Diffstat (limited to 'archaeological_context_records/tests.py')
-rw-r--r-- | archaeological_context_records/tests.py | 140 |
1 files changed, 63 insertions, 77 deletions
diff --git a/archaeological_context_records/tests.py b/archaeological_context_records/tests.py index daa38c26b..769d6a2b2 100644 --- a/archaeological_context_records/tests.py +++ b/archaeological_context_records/tests.py @@ -16,7 +16,7 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. # See the file COPYING for details. - +import copy import csv import json from io import StringIO @@ -1369,102 +1369,88 @@ class GraphGenerationTest(ContextRecordInit, TestCase): class SeleniumTestsContextRecords(SeleniumTests): fixtures = CONTEXT_RECORD_FIXTURES - def _test_cr(self, i, dic_polygon, dic_point, geom_bf): - cr_label = self.selenium.find_element_by_xpath('//tbody/tr[' + str(i) + ']/td[2]').text - if cr_label[3:5] == "Pt": - dic_base = dic_point + def _test_cr(self, i, pks, geojsons): + infos = self.selenium.find_element_by_xpath('//tbody/tr[' + str(i) + ']/td/a[@class="display_details"]') + self.scroll(infos) + infos.click() + + label = self.selenium.find_element_by_xpath('//small[@title="ID interne" or @title="Internal ID"]').text + label = label[1:] + cr = models.ContextRecord.objects.get(pk=pks[label]) + slug_pk = str(cr.SLUG) + "-" + str(cr.pk) + + if False: # geojsons[label]['precise'] + base = copy.deepcopy(geojsons[label]['get_pts']) 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() + base = copy.deepcopy(geojsons[label]['get_polys']) + self.assertMap(base, slug_pk) + + get_poly_id = "get-poly-for-" + slug_pk + disp_bf_id = "disp-bf-for-" + slug_pk + + cr_polys = geojsons[label]['get_polys'] + bf_labels_polys = cr_polys['properties'].pop('base-finds') + bf_polys = {'type': 'FeatureCollection', + 'features': [geojsons[bf_label]['get_polys'] for bf_label in bf_labels_polys] + } + + cr_pts = geojsons[label]['get_pts'] + bf_labels_pts = cr_pts['properties'].pop('base-finds') + bf_pts = {'type': 'FeatureCollection', + 'features': [geojsons[bf_label]['get_pts'] for bf_label in bf_labels_pts] + } + self.WebDriverWait(self.selenium, 2).until( lambda driver: driver.find_element_by_xpath( '//dl[@class="col-12"]/dt[text()="Display geo items" or text()="Afficher les éléments"]')) - self.selenium.find_element_by_xpath( - '//dl[@class="col-12"]/dt[text()="Display geo items" or text()="Afficher les éléments"]') dd = '//dl[@class="col-12"]/dd' - self.selenium.find_element_by_xpath(dd + '/label[text()="Display associated features: "]') - select = dd + '/select[@name="display-geo-items"]' - disp = self.selenium.find_element_by_xpath(select) - self.assertEqual(disp.get_attribute("value"), "") - self.assertMap(dic_base) + disp_bf = self.selenium.find_element_by_xpath(dd + '/fieldset/input[@id="' + disp_bf_id + '"]') + self.assertFalse(disp_bf.is_selected()) + select_get_poly = dd + '/select[@id="' + get_poly_id + '"]' + self.assertNotInDOM(select_get_poly) + self.assertMap(base, slug_pk) # context record specific # click on "Base finds" - self.selenium.execute_script('return initialize_test_map()') - self.scroll(disp) - disp.click() - self.selenium.find_element_by_xpath(select + '/option[@value="basefinds"]').click() - cr_geoms = [ - {'type': 'FeatureCollection', - 'features': [ - {'geometry': - {'coordinates': geom_bf[0], - 'type': 'MultiPolygon'}, - 'properties': {'label': 'Find 1 from ' + cr_label}, - 'type': 'Feature'}, - {'geometry': {'coordinates': geom_bf[0], - 'type': 'MultiPolygon'}, - 'properties': {'label': 'Find 2 from ' + cr_label}, - 'type': 'Feature'}] - } + self.selenium.execute_script('return initialize_test_map(arguments[0])', slug_pk) + self.scroll(disp_bf) + disp_bf.click() + + bf_geoms = [ + bf_polys, + {'type': 'FeatureCollection', 'features': []} ] - self.assertMap(dic_base, cr_geoms) + self.assertTrue(disp_bf.is_selected()) + self.assertMap(base, slug_pk, bf_geoms) - select_get_poly = dd + '/select[@name="get-polygons"]' + select_get_poly = dd + '/select[@id="' + get_poly_id + '"]' get_poly = self.selenium.find_element_by_xpath(select_get_poly) - self.selenium.execute_script('return initialize_test_map()') get_poly.click() self.selenium.find_element_by_xpath(select_get_poly + '/option[@value="points"]').click() - cr_geoms = [ - {'type': 'FeatureCollection', - 'features': [ - {'geometry': - {'coordinates': geom_bf[1], - 'type': 'Point'}, - 'properties': {'label': 'Find 1 from ' + cr_label}, - 'type': 'Feature'}, - {'geometry': {'coordinates': geom_bf[2], - 'type': 'Point'}, - 'properties': {'label': 'Find 2 from ' + cr_label}, - 'type': 'Feature'}] - } + bf_geoms = [ + bf_pts, + {'type': 'FeatureCollection', 'features': []} ] - self.assertMap(dic_base, cr_geoms) + self.assertTrue(disp_bf.is_selected()) + self.assertMap(base, slug_pk, bf_geoms) # Click on "None" - self.selenium.execute_script('return initialize_test_map()') - disp.click() - self.selenium.find_element_by_xpath(select + '/option[@value=""]').click() - self.assertMap(dic_base) + self.selenium.execute_script('return initialize_test_map(arguments[0])', slug_pk) + disp_bf.click() + self.assertFalse(disp_bf.is_selected()) + self.assertNotInDOM(select_get_poly) + self.assertMap(base, slug_pk) def test_geo_items(self): - geo_elements, ope_pks = self.setUpDefaultGeoItems() - poly_cr, centr_cr, pt_cr = geo_elements[1] - - dic_polygon = { - 'type': 'FeatureCollection', - 'features': [ - {'geometry': - {'coordinates': poly_cr, - 'type': 'MultiPolygon'}, - 'properties': {}, - 'type': 'Feature'} - ]} - dic_point = { - 'type': 'FeatureCollection', - 'features': [ - {'geometry': - {'coordinates': pt_cr, - 'type': 'Point'}, - 'properties': {}, - 'type': 'Feature'} - ]} + pks, geojsons = self.pks_and_geojson() for i in range(1, 5): - dropdown = self.selenium.find_element_by_xpath('//a[@class="nav-link dropdown-toggle"][@id="dropdown-menu-main"]') + self.WebDriverWait(self.selenium, 2).until( + lambda driver: driver.find_element_by_xpath( + '//a[@class="nav-link dropdown-toggle"][@id="dropdown-menu-main"]')) + 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="/record_search/"]').click() - self._test_cr(i, dic_polygon, dic_point, geo_elements[2])
\ No newline at end of file + self._test_cr(i, pks, geojsons) |