diff options
author | QuentinAndre <quentin.andre@imt-atlantique.net> | 2021-08-25 11:54:27 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-11-16 17:04:41 +0100 |
commit | 2fd7713af7cca592a59f9ce974e5b382f63b45b3 (patch) | |
tree | 486a128c0c607746f3136f8944f3587593d0320f /archaeological_finds/tests.py | |
parent | 980e67ca5e9ab913fbf9d250d9d1a36c15959df7 (diff) | |
download | Ishtar-2fd7713af7cca592a59f9ce974e5b382f63b45b3.tar.bz2 Ishtar-2fd7713af7cca592a59f9ce974e5b382f63b45b3.zip |
additional tests without nested tabs for testing the ui of basefinds
Diffstat (limited to 'archaeological_finds/tests.py')
-rw-r--r-- | archaeological_finds/tests.py | 82 |
1 files changed, 69 insertions, 13 deletions
diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py index 5d13bd2dd..734f4f66f 100644 --- a/archaeological_finds/tests.py +++ b/archaeological_finds/tests.py @@ -23,6 +23,7 @@ import json import os import shutil import tempfile +from time import time from rest_framework.test import APITestCase from rest_framework.authtoken.models import Token @@ -2859,16 +2860,33 @@ class TemplateTest(FindInit, TestCase): class SeleniumTestsBaseFinds(SeleniumTests): fixtures = FIND_FIXTURES - def _test_bf(self, i, pks, geojsons): - bf_infos = self.selenium.find_element_by_xpath('//tbody/tr[' + str(i) + ']/td/a[@class="display_details"]') - self.scroll(bf_infos) - bf_infos.click() - - bf_label = self.selenium.find_element_by_xpath('//small[@title="ID interne" or @title="Internal ID"]').text - bf_label = bf_label.split('-') - self.assertEqual(len(bf_label), 3) - bf_label = bf_label[2] - bf = models.BaseFind.objects.get(pk=pks[bf_label]) + def _test_bf(self, i, pks, geojsons, from_search=False): + title = self.selenium.find_element_by_xpath('//h3[contains(text(), "Mobilier") or contains(text(), "Find")]') + panel = title.find_element_by_xpath('./..') + if from_search: + tbody = './form' + '/div' * 7 + '/table/tbody' + else: + tbody = '.' + '/div' * 6 + '/table/tbody' + details = panel.find_element_by_xpath(tbody + '/tr[' + str(i) + ']/td/a[@class="display_details"]') + self.scroll(details) + details.click() + label = None + timeout = 20 + t = time() + while not label and time()-t < timeout: + for internalId in self.selenium.find_elements_by_xpath('//small[@title="ID interne" or @title="Internal ID"]'): + if 'Find' in internalId.text: + label = internalId.text + break + '''label = '//small[@title="ID interne" or @title="Internal ID"][contains(text(), "Find")]' + self.WebDriverWait(self.selenium, 2).until( + lambda driver: driver.find_element_by_xpath(label)) + label = self.selenium.find_element_by_xpath(label).text''' + label = label.split('-') + self.assertEqual(len(label), 3) + label = label[2] + + bf = models.BaseFind.objects.get(pk=pks[label]) slug_pk = str(bf.SLUG) + "-" + str(bf.pk) print('ACHTUNG: ', bf.most_precise_geo()) print(bf.multi_polygon.coords) @@ -2879,9 +2897,9 @@ class SeleniumTestsBaseFinds(SeleniumTests): print(bf.point_source_item) if False: #geojsons[bf_label]['precise'] - bf_base = geojsons[bf_label]['get_pts'] + bf_base = geojsons[label]['get_pts'] else: - bf_base = geojsons[bf_label]['get_polys'] + bf_base = geojsons[label]['get_polys'] self.assertMap(bf_base, slug_pk) title = '//dl[@class="col-12"]/dt[text()="Display geo items" or text()="Afficher les éléments"]' @@ -2894,6 +2912,41 @@ class SeleniumTestsBaseFinds(SeleniumTests): 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(), "Mobilier") or contains(text(), "Finds")]').click() + for j in range(1, 5): + self._test_bf(j, pks, copy.deepcopy(geojsons)) + # from context record + for i in range(1, 5): + 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() + 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(), "Mobilier") or contains(text(), "Finds")]').click() + for j in range(1, 3): + self._test_bf(j, pks, copy.deepcopy(geojsons)) + # from search for i in range(1, 9): self.WebDriverWait(self.selenium, 2).until( lambda driver: driver.find_element_by_xpath( @@ -2902,4 +2955,7 @@ class SeleniumTestsBaseFinds(SeleniumTests): self.scroll(dropdown) dropdown.click() self.selenium.find_element_by_xpath('//div[@class="dropdown-menu show"]/a[@href="/find_search/"]').click() - self._test_bf(i, pks, geojsons) + self._test_bf(i, pks, copy.deepcopy(geojsons), from_search=True) + # from bottom table + for i in range(1,8): + self._test_bf(i, pks, copy.deepcopy(geojsons), from_search=True) |