diff options
Diffstat (limited to 'archaeological_operations/tests.py')
| -rw-r--r-- | archaeological_operations/tests.py | 43 | 
1 files changed, 30 insertions, 13 deletions
| diff --git a/archaeological_operations/tests.py b/archaeological_operations/tests.py index a4b73453e..3452b78fc 100644 --- a/archaeological_operations/tests.py +++ b/archaeological_operations/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 json  import datetime  from subprocess import Popen, PIPE @@ -4245,6 +4245,7 @@ class SeleniumTestsOperations(SeleniumTests):      def _test_operation(self, i, slug_pk, geojsons, label):          get_poly_id = "get-poly-for-" + slug_pk +        get_poly_label_id = "get-poly-label-for-" + slug_pk          disp_cr_id = "disp-cr-for-" + slug_pk          disp_bf_id = "disp-bf-for-" + slug_pk @@ -4274,24 +4275,31 @@ class SeleniumTestsOperations(SeleniumTests):              ope_base = geojsons[label]['get_pts']          else:              ope_base = geojsons[label]['get_polys'] - -        self.selenium.find_element_by_xpath('//tbody/tr[' + str(i) + ']/td/a[@class="display_details"]').click() +        title = self.selenium.find_element_by_xpath( +            '//h3[text()="Rechercher une opération" or text()="Operation search"]') +        panel = title.find_element_by_xpath('./..') +        tbody = './form' + '/div'*7 + '/table/tbody' +        details = panel.find_element_by_xpath(tbody + '/tr[' + str(i) + ']/td/a[@class="display_details"]') +        self.scroll(details) +        details.click()          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"]')) +                '//dl[@class="col-12"]/dt[@id="display-geo-items-for-' + slug_pk + '"]'))          dd = '//dl[@class="col-12"]/dd' -        self.selenium.find_element_by_xpath(dd + '/fieldset/label[text()="Display context records"]') +        self.selenium.find_element_by_xpath(dd + '/fieldset/label[@for="' + disp_cr_id + '"]')          disp_cr = self.selenium.find_element_by_xpath(dd + '/fieldset/input[@id="' + disp_cr_id + '"]') -        self.selenium.find_element_by_xpath(dd + '/fieldset/label[text()="Display context records"]') +        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_cr.is_selected())          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(ope_base, slug_pk)          # click on "Context records" -        self.selenium.execute_script('return initialize_test_map(arguments[0])', slug_pk) +        self.selenium.execute_script('initialize_test_map(arguments[0])', slug_pk)          self.scroll(disp_cr)          disp_cr.click() @@ -4301,6 +4309,7 @@ class SeleniumTestsOperations(SeleniumTests):          ]          self.assertTrue(disp_cr.is_selected())          self.assertFalse(disp_bf.is_selected()) +        self.selenium.find_element_by_xpath(get_poly_label)          self.assertMap(ope_base, slug_pk, cr_geoms)          get_poly = self.selenium.find_element_by_xpath(select_get_poly) @@ -4312,26 +4321,29 @@ class SeleniumTestsOperations(SeleniumTests):          ]          self.assertTrue(disp_cr.is_selected())          self.assertFalse(disp_bf.is_selected()) +        self.selenium.find_element_by_xpath(get_poly_label)          self.assertMap(ope_base, slug_pk, cr_geoms)          # Click on everything -        self.selenium.execute_script('return initialize_test_map(arguments[0])', slug_pk) +        self.selenium.execute_script('initialize_test_map(arguments[0])', slug_pk)          disp_bf.click()          every_geoms = [bf_pts, cr_pts]          self.assertTrue(disp_cr.is_selected())          self.assertTrue(disp_bf.is_selected()) +        self.selenium.find_element_by_xpath(get_poly_label)          self.assertMap(ope_base, slug_pk, every_geoms) -        self.selenium.execute_script('return initialize_test_map(arguments[0])', slug_pk) +        self.selenium.execute_script('initialize_test_map(arguments[0])', slug_pk)          get_poly.click()          self.selenium.find_element_by_xpath(select_get_poly + '/option[@value="polygons"]').click()          every_geoms = [bf_polys, cr_polys]          self.assertTrue(disp_cr.is_selected())          self.assertTrue(disp_bf.is_selected()) +        self.selenium.find_element_by_xpath(get_poly_label)          self.assertMap(ope_base, slug_pk, every_geoms)          # click on "Base finds" -        self.selenium.execute_script('return initialize_test_map(arguments[0])', slug_pk) +        self.selenium.execute_script('initialize_test_map(arguments[0])', slug_pk)          self.scroll(disp_cr)          disp_cr.click() @@ -4341,6 +4353,7 @@ class SeleniumTestsOperations(SeleniumTests):          ]          self.assertFalse(disp_cr.is_selected())          self.assertTrue(disp_bf.is_selected()) +        self.selenium.find_element_by_xpath(get_poly_label)          self.assertMap(ope_base, slug_pk, bf_geoms)          select_get_poly = dd + '/select[@id="' + get_poly_id + '"]' @@ -4353,14 +4366,16 @@ class SeleniumTestsOperations(SeleniumTests):          ]          self.assertFalse(disp_cr.is_selected())          self.assertTrue(disp_bf.is_selected()) +        self.selenium.find_element_by_xpath(get_poly_label)          self.assertMap(ope_base, slug_pk, bf_geoms)          # Click on "None" -        self.selenium.execute_script('return initialize_test_map(arguments[0])', slug_pk) +        self.selenium.execute_script('initialize_test_map(arguments[0])', slug_pk)          disp_bf.click()          self.assertFalse(disp_cr.is_selected())          self.assertFalse(disp_bf.is_selected())          self.assertNotInDOM(select_get_poly) +        self.assertNotInDOM(get_poly_label)          self.assertMap(ope_base, slug_pk)      def test_geo_items(self): @@ -4373,7 +4388,7 @@ class SeleniumTestsOperations(SeleniumTests):          self.selenium.find_element_by_xpath('//div[@class="dropdown-menu show"]/a[@href="/operation_search/"]').click()          ope = models.Operation.objects.get(pk=pks['Poly'])          slug_pk_poly = str(ope.SLUG) + "-" + str(ope.pk) -        self._test_operation(2, slug_pk_poly, geojsons, 'Poly') +        self._test_operation(2, slug_pk_poly, copy.deepcopy(geojsons), 'Poly')          dropdown = self.selenium.find_element_by_xpath(              '//a[@class="nav-link dropdown-toggle"][@id="dropdown-menu-main"]') @@ -4387,5 +4402,7 @@ class SeleniumTestsOperations(SeleniumTests):          print(ope.multi_polygon.coords)          print(ope.point_2d.coords)          slug_pk_pt = str(ope.SLUG) + "-" + str(ope.pk) -        self._test_operation(1, slug_pk_pt, geojsons, 'Pt') +        self._test_operation(1, slug_pk_pt, copy.deepcopy(geojsons), 'Pt') +        # display both at the same time (1 is already displayed) +        self._test_operation(2, slug_pk_poly, geojsons, 'Poly') | 
