summaryrefslogtreecommitdiff
path: root/archaeological_context_records/tests.py
diff options
context:
space:
mode:
authorQuentinAndre <quentin.andre@imt-atlantique.net>2021-08-25 15:32:23 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2021-09-01 12:36:46 +0200
commit40be360e184b4cac81a0666c6238282c7d0c9301 (patch)
tree288ebb25954beece9da8e98336715297bbd3be22 /archaeological_context_records/tests.py
parente41bf915709fb45f05c6c79a4f758e50b3ce3683 (diff)
downloadIshtar-40be360e184b4cac81a0666c6238282c7d0c9301.tar.bz2
Ishtar-40be360e184b4cac81a0666c6238282c7d0c9301.zip
clean version of get_geo_items with ui integration and tests
Diffstat (limited to 'archaeological_context_records/tests.py')
-rw-r--r--archaeological_context_records/tests.py220
1 files changed, 132 insertions, 88 deletions
diff --git a/archaeological_context_records/tests.py b/archaeological_context_records/tests.py
index c1117a68d..a089c1dc5 100644
--- a/archaeological_context_records/tests.py
+++ b/archaeological_context_records/tests.py
@@ -60,7 +60,8 @@ from ishtar_common.tests import (
GenericSerializationTest,
COMMON_FIXTURES,
WAREHOUSE_FIXTURES,
- SearchText, SeleniumTests,
+ SearchText,
+ SeleniumTests,
)
from archaeological_operations.models import Operation
@@ -952,8 +953,7 @@ class RecordRelationsTest(ContextRecordInit, TestCase):
crs = self.context_records
rel_type_1 = models.RelationType.objects.create(
- symmetrical=False, txt_idx="rel_1",
- logical_relation='included'
+ symmetrical=False, txt_idx="rel_1", logical_relation="included"
)
"""
6 7 8 9 10 = 11 = 12
@@ -971,31 +971,36 @@ class RecordRelationsTest(ContextRecordInit, TestCase):
1 2
"""
relations = (
- (1, 3), (2, 3), (3, 4), (3, 5), (4, 6), (4, 7), (4, 8),
- (5, 9), (5, 10)
+ (1, 3),
+ (2, 3),
+ (3, 4),
+ (3, 5),
+ (4, 6),
+ (4, 7),
+ (4, 8),
+ (5, 9),
+ (5, 10),
)
models.RecordRelations._no_post_treatments = True
for child_idx, parent_idx in relations:
models.RecordRelations.objects.create(
left_record=crs[child_idx - 1],
right_record=crs[parent_idx - 1],
- relation_type=rel_type_1
+ relation_type=rel_type_1,
)
rel_type_2 = models.RelationType.objects.create(
- symmetrical=True, txt_idx="rel_2",
- logical_relation='equal'
- )
- equal_relations = (
- (10, 11), (11, 12), (5, 13), (3, 14)
+ symmetrical=True, txt_idx="rel_2", logical_relation="equal"
)
+ equal_relations = ((10, 11), (11, 12), (5, 13), (3, 14))
for child_idx, parent_idx in equal_relations:
models.RecordRelations.objects.create(
left_record=crs[child_idx - 1],
right_record=crs[parent_idx - 1],
- relation_type=rel_type_2
+ relation_type=rel_type_2,
)
q = models.ContextRecordTree.objects.filter(
- cr_parent_id=crs[2].pk, cr_id=crs[0].pk)
+ cr_parent_id=crs[2].pk, cr_id=crs[0].pk
+ )
self.assertGreaterEqual(q.count(), 1)
## use tables
@@ -1052,58 +1057,60 @@ class RecordRelationsTest(ContextRecordInit, TestCase):
# test remove a node
nb = models.ContextRecordTree.objects.filter(
- cr_parent=crs[6 - 1], cr=crs[3 - 1]).count()
+ cr_parent=crs[6 - 1], cr=crs[3 - 1]
+ ).count()
self.assertEqual(nb, 1)
models.RecordRelations.objects.filter(
- left_record=crs[3 - 1],
- right_record=crs[4 - 1]
+ left_record=crs[3 - 1], right_record=crs[4 - 1]
).delete()
models.ContextRecordTree.update(crs[3 - 1].pk)
models.ContextRecordTree.update(crs[4 - 1].pk)
nb = models.ContextRecordTree.objects.filter(
- cr_parent=crs[6 - 1], cr=crs[3 - 1]).count()
+ cr_parent=crs[6 - 1], cr=crs[3 - 1]
+ ).count()
self.assertEqual(nb, 0)
# test remove a node (update equal links)
nb = models.ContextRecordTree.objects.filter(
- cr_parent=crs[10 - 1], cr=crs[14 - 1]).count()
+ cr_parent=crs[10 - 1], cr=crs[14 - 1]
+ ).count()
self.assertEqual(nb, 1)
models.RecordRelations.objects.filter(
- left_record=crs[3 - 1],
- right_record=crs[5 - 1]
+ left_record=crs[3 - 1], right_record=crs[5 - 1]
).delete()
models.ContextRecordTree.update(crs[3 - 1].pk)
models.ContextRecordTree.update(crs[5 - 1].pk)
nb = models.ContextRecordTree.objects.filter(
- cr_parent=crs[10 - 1], cr=crs[14 - 1]).count()
+ cr_parent=crs[10 - 1], cr=crs[14 - 1]
+ ).count()
self.assertEqual(nb, 0)
# auto update
models.RecordRelations._no_post_treatments = False
models.RecordRelations.objects.create(
- left_record=crs[3 - 1],
- right_record=crs[4 - 1],
- relation_type=rel_type_1
+ left_record=crs[3 - 1], right_record=crs[4 - 1], relation_type=rel_type_1
)
nb = models.ContextRecordTree.objects.filter(
- cr_parent=crs[6 - 1], cr=crs[3 - 1]).count()
+ cr_parent=crs[6 - 1], cr=crs[3 - 1]
+ ).count()
self.assertEqual(nb, 1)
models.RecordRelations.objects.create(
- left_record=crs[3 - 1],
- right_record=crs[5 - 1],
- relation_type=rel_type_1
+ left_record=crs[3 - 1], right_record=crs[5 - 1], relation_type=rel_type_1
)
nb = models.ContextRecordTree.objects.filter(
- cr_parent=crs[10 - 1], cr=crs[14 - 1]).count()
+ cr_parent=crs[10 - 1], cr=crs[14 - 1]
+ ).count()
self.assertEqual(nb, 1)
# delete
nb = models.ContextRecordTree.objects.filter(
- cr_parent=crs[13 - 1], cr=crs[1 - 1]).count()
+ cr_parent=crs[13 - 1], cr=crs[1 - 1]
+ ).count()
self.assertEqual(nb, 1)
crs[3 - 1].delete()
nb = models.ContextRecordTree.objects.filter(
- cr_parent=crs[13 - 1], cr=crs[1 - 1]).count()
+ cr_parent=crs[13 - 1], cr=crs[1 - 1]
+ ).count()
self.assertEqual(nb, 0)
# delete on views
@@ -1114,7 +1121,8 @@ class RecordRelationsTest(ContextRecordInit, TestCase):
models.ContextRecordTree.objects.filter(pk__isnull=False).delete()
crs[4 - 1].delete()
q = models.ContextRecordTree.objects.filter(
- cr_parent_id=crs[1 - 1].pk, cr_id=crs[6 - 1].pk)
+ cr_parent_id=crs[1 - 1].pk, cr_id=crs[6 - 1].pk
+ )
self.assertGreaterEqual(q.count(), 0)
def _test_tree_(self, test_trees, context_record):
@@ -1122,12 +1130,15 @@ class RecordRelationsTest(ContextRecordInit, TestCase):
for tree in test_trees:
for tree_idx in range(len(tree) - 1):
q = models.ContextRecordTree.objects.filter(
- cr_parent=crs[tree[tree_idx] - 1], cr=crs[tree[tree_idx + 1] - 1])
+ cr_parent=crs[tree[tree_idx] - 1], cr=crs[tree[tree_idx + 1] - 1]
+ )
self.assertEqual(
- q.count(), 1,
+ q.count(),
+ 1,
msg="Tree relation ({}, {}) is missing for context "
- "record {}".format(tree[tree_idx + 1], tree[tree_idx],
- context_record)
+ "record {}".format(
+ tree[tree_idx + 1], tree[tree_idx], context_record
+ ),
)
def _test_tree_generation(self, cr_idx, test_trees):
@@ -1365,61 +1376,79 @@ class GraphGenerationTest(ContextRecordInit, TestCase):
self.assertNotIn('"CR 2D"', content)
-@tag('ui')
+@tag("ui")
class SeleniumTestsContextRecords(SeleniumTests):
fixtures = CONTEXT_RECORD_FIXTURES
def _test_cr(self, i, pks, geojsons, method=None):
- if method == 'from operation':
- tbody = '.' + '/div' * 6 + '/table/tbody'
+ 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"]')
+ '//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
+ label = panel.find_element_by_xpath(
+ tbody + "/tr[" + str(i) + "]/td[2]"
+ ).text
details.click()
else:
- tbody = './form' + '/div' * 7 + '/table/tbody'
+ 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))
+ self.WebDriverWait(self.selenium, self.waiting_time).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"]')
+ 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 = 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:
- base = copy.deepcopy(geojsons[label]['get_polys'])
+ base = copy.deepcopy(geojsons[label]["get_polys"])
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']
- 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_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]
- }
+ 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(
+ self.WebDriverWait(self.selenium, self.waiting_time).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[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.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 + '"]'
@@ -1430,35 +1459,37 @@ class SeleniumTestsContextRecords(SeleniumTests):
# context record specific
# click on "Base finds"
- self.selenium.execute_script('return initialize_test_map(arguments[0])', slug_pk)
+ 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()
+ self.selenium.find_element_by_xpath(
+ select_get_poly + '/option[@value="polygons"]'
+ ).click()
- bf_geoms = [
- bf_polys,
- {'type': 'FeatureCollection', 'features': []}
- ]
+ 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)
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()
- bf_geoms = [
- bf_pts,
- {'type': 'FeatureCollection', 'features': []}
- ]
+ self.selenium.find_element_by_xpath(
+ select_get_poly + '/option[@value="points"]'
+ ).click()
+ bf_geoms = [bf_pts, {"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"
- self.selenium.execute_script('return initialize_test_map(arguments[0])', slug_pk)
+ 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)
@@ -1469,31 +1500,44 @@ class SeleniumTestsContextRecords(SeleniumTests):
pks, geojsons = self.pks_and_geojson()
# from operation
for i in range(1, 3):
- self.WebDriverWait(self.selenium, 2).until(
+ self.WebDriverWait(self.selenium, self.waiting_time).until(
lambda driver: driver.find_element_by_xpath(
- '//a[@class="nav-link dropdown-toggle"][@id="dropdown-menu-main"]'))
+ '//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"]')
+ '//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.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()
+ '//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(
+ self.WebDriverWait(self.selenium, self.waiting_time).until(
lambda driver: driver.find_element_by_xpath(
- '//a[@class="nav-link dropdown-toggle"][@id="dropdown-menu-main"]'))
+ '//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"]')
+ '//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.selenium.find_element_by_xpath(
+ '//div[@class="dropdown-menu show"]/a[@href="/record_search/"]'
+ ).click()
self._test_cr(i, pks, copy.deepcopy(geojsons))
# from bottom table, multiple displays
for i in range(1, 4):