summaryrefslogtreecommitdiff
path: root/archaeological_context_records/tests.py
diff options
context:
space:
mode:
authorQuentinAndre <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
commit1a950f5e45f23b22d622022ded110fc85028f6f1 (patch)
treee1d279e9bbf539714e76632267c784306f7c6f7a /archaeological_context_records/tests.py
parent4728415e83236e2a699aeafcf672fd21db8c7542 (diff)
downloadIshtar-1a950f5e45f23b22d622022ded110fc85028f6f1.tar.bz2
Ishtar-1a950f5e45f23b22d622022ded110fc85028f6f1.zip
ui tests without base feature point working
Diffstat (limited to 'archaeological_context_records/tests.py')
-rw-r--r--archaeological_context_records/tests.py140
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)