diff options
Diffstat (limited to 'archaeological_context_records/tests.py')
-rw-r--r-- | archaeological_context_records/tests.py | 64 |
1 files changed, 54 insertions, 10 deletions
diff --git a/archaeological_context_records/tests.py b/archaeological_context_records/tests.py index 769d6a2b2..c1117a68d 100644 --- a/archaeological_context_records/tests.py +++ b/archaeological_context_records/tests.py @@ -1369,13 +1369,27 @@ class GraphGenerationTest(ContextRecordInit, TestCase): class SeleniumTestsContextRecords(SeleniumTests): fixtures = CONTEXT_RECORD_FIXTURES - 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:] + def _test_cr(self, i, pks, geojsons, method=None): + if method == 'from operation': + tbody = '.' + '/div' * 6 + '/table/tbody' + title = self.selenium.find_element_by_xpath( + '//h3[contains(text(), "Unité d\'Enregistrement") or contains(text(), "Context record")]') + panel = title.find_element_by_xpath('./..') + details = panel.find_element_by_xpath(tbody + '/tr[' + str(i) + ']/td/a[@class="display_details"]') + self.scroll(details) + label = panel.find_element_by_xpath(tbody + '/tr[' + str(i) + ']/td[2]').text + details.click() + else: + tbody = './form' + '/div' * 7 + '/table/tbody' + title = '//h3[text()="Rechercher une unité d\'enregistrement" or text()="Context record search"]' + self.WebDriverWait(self.selenium, 2).until(lambda driver: driver.find_element_by_xpath(title)) + title = self.selenium.find_element_by_xpath(title) + panel = title.find_element_by_xpath('./..') + details = panel.find_element_by_xpath(tbody + '/tr[' + str(i) + ']/td/a[@class="display_details"]') + self.scroll(details) + details.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) @@ -1383,9 +1397,9 @@ class SeleniumTestsContextRecords(SeleniumTests): base = copy.deepcopy(geojsons[label]['get_pts']) else: base = copy.deepcopy(geojsons[label]['get_polys']) - self.assertMap(base, slug_pk) get_poly_id = "get-poly-for-" + slug_pk + get_poly_label_id = "get-poly-label-for-" + slug_pk disp_bf_id = "disp-bf-for-" + slug_pk cr_polys = geojsons[label]['get_polys'] @@ -1404,10 +1418,13 @@ class SeleniumTestsContextRecords(SeleniumTests): lambda driver: driver.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 + '/fieldset/label[@for="' + disp_bf_id + '"]') 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 + '"]' + get_poly_label = dd + '/label[@id="' + get_poly_label_id + '"]' self.assertNotInDOM(select_get_poly) + self.assertNotInDOM(get_poly_label) self.assertMap(base, slug_pk) # context record specific @@ -1416,15 +1433,19 @@ class SeleniumTestsContextRecords(SeleniumTests): self.selenium.execute_script('return initialize_test_map(arguments[0])', slug_pk) self.scroll(disp_bf) disp_bf.click() + select_get_poly = dd + '/select[@id="' + get_poly_id + '"]' + get_poly = self.selenium.find_element_by_xpath(select_get_poly) + get_poly.click() + self.selenium.find_element_by_xpath(select_get_poly + '/option[@value="polygons"]').click() bf_geoms = [ bf_polys, {'type': 'FeatureCollection', 'features': []} ] self.assertTrue(disp_bf.is_selected()) + self.selenium.find_element_by_xpath(get_poly_label) self.assertMap(base, slug_pk, bf_geoms) - select_get_poly = dd + '/select[@id="' + get_poly_id + '"]' get_poly = self.selenium.find_element_by_xpath(select_get_poly) get_poly.click() self.selenium.find_element_by_xpath(select_get_poly + '/option[@value="points"]').click() @@ -1433,6 +1454,7 @@ class SeleniumTestsContextRecords(SeleniumTests): {'type': 'FeatureCollection', 'features': []} ] self.assertTrue(disp_bf.is_selected()) + self.selenium.find_element_by_xpath(get_poly_label) self.assertMap(base, slug_pk, bf_geoms) # Click on "None" @@ -1440,10 +1462,29 @@ class SeleniumTestsContextRecords(SeleniumTests): disp_bf.click() self.assertFalse(disp_bf.is_selected()) self.assertNotInDOM(select_get_poly) + self.assertNotInDOM(get_poly_label) self.assertMap(base, slug_pk) def test_geo_items(self): pks, geojsons = self.pks_and_geojson() + # from operation + for i in range(1, 3): + 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="/operation_search/"]').click() + details = self.selenium.find_element_by_xpath('//tbody/tr[' + str(i) + ']/td/a[@class="display_details"]') + self.scroll(details) + details.click() + self.selenium.find_element_by_xpath( + '//ul[@role="tablist"]/li/a[contains(text(), "Unités d\'Enregistrement") or contains(text(), "Context records")]').click() + for j in range(1, 3): + self._test_cr(j, pks, copy.deepcopy(geojsons), method="from operation") + # from search bar for i in range(1, 5): self.WebDriverWait(self.selenium, 2).until( lambda driver: driver.find_element_by_xpath( @@ -1453,4 +1494,7 @@ class SeleniumTestsContextRecords(SeleniumTests): 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, pks, geojsons) + self._test_cr(i, pks, copy.deepcopy(geojsons)) + # from bottom table, multiple displays + for i in range(1, 4): + self._test_cr(i, pks, copy.deepcopy(geojsons)) |