summaryrefslogtreecommitdiff
path: root/archaeological_finds/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>2021-11-16 17:04:41 +0100
commit980e67ca5e9ab913fbf9d250d9d1a36c15959df7 (patch)
treec68f98515dcba96204480621fa2a55b0597a672b /archaeological_finds/tests.py
parent6faeee07b384372d993913ec3e94b5807c3b2cf8 (diff)
downloadIshtar-980e67ca5e9ab913fbf9d250d9d1a36c15959df7.tar.bz2
Ishtar-980e67ca5e9ab913fbf9d250d9d1a36c15959df7.zip
ui tests without base feature point working
Diffstat (limited to 'archaeological_finds/tests.py')
-rw-r--r--archaeological_finds/tests.py212
1 files changed, 43 insertions, 169 deletions
diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py
index 00e14307c..5d13bd2dd 100644
--- a/archaeological_finds/tests.py
+++ b/archaeological_finds/tests.py
@@ -2521,9 +2521,6 @@ class GeomaticTest(FindInit, TestCase):
self.assertEqual(base_find.point_source, "P")
def test_get_geo_items(self):
- from archaeological_operations.models import Operation
- from archaeological_context_records.models import ContextRecord
- from archaeological_finds.models import BaseFind
from ishtar_common.tests import GeomaticTest as BaseGeomaticTest
#profile = models.get_current_profile()
@@ -2537,142 +2534,28 @@ class GeomaticTest(FindInit, TestCase):
print(user.is_authenticated())'''
geoms, pks = BaseGeomaticTest.setUpDefaultGeoItems(self.user)
-
+ dics = BaseGeomaticTest.geojson_geo_items(geoms, pks, test_get_geo_items=True)
url_pts = reverse("api-get-geo-points")
url_polys = reverse("api-get-geo-polygons")
- cache_dics_t, cache_dics_f = {}, {}
-
- def finds_first(x):
- if x[:2] == "CR":
- return 0
- if x[:4] == "Find":
- return -1
- else:
- return 1
-
- labels = list(pks.keys())
- labels.sort(key=finds_first)
- for label in labels:
+ for label in dics.keys():
+ dic = dics[label]
+ get_pk = dic['get_pk']
pk = pks[label]
- if label[:4] == "Find":
- dic_t = {
- "type": "Feature",
- "geometry": {
- "type": "MultiPolygon", "coordinates": geoms[2][0]
- },
- "properties": {"label": label},
- }
- dic_f = {
- "type": "Feature",
- "geometry": {
- "type": "Point", "coordinates": BaseGeomaticTest.pt_coords_from_label(label, geoms),
- },
- "properties": {"label": label},
- }
- cache_dics_t[label] = dic_t
- cache_dics_f[label] = dic_f
- res_t = BaseFind.objects.get(pk=pk).get_geo_items(get_polygons=True)
- res_f = BaseFind.objects.get(pk=pk).get_geo_items(get_polygons=False)
- get_pk = "?pk="
-
- elif label[:2] == "CR":
- cache_key = lambda x: "Find " + x + " from " + label
- dic_t = {
- "type": "Feature",
- "geometry": {
- "type": "MultiPolygon", "coordinates": geoms[1][0]
- },
- "properties": {
- "label": label,
- "base-finds": {
- 'type': 'FeatureCollection',
- 'features': [
- cache_dics_t[cache_key("Polygon")],
- cache_dics_t[cache_key("Point")],
- ]
- }
- },
- }
- dic_f = {
- "type": "Feature",
- "geometry": {
- "type": "Point", "coordinates": BaseGeomaticTest.pt_coords_from_label(label, geoms),
- },
- "properties": {
- "label": label,
- "base-finds": {
- 'type': 'FeatureCollection',
- 'features': [
- cache_dics_f[cache_key("Polygon")],
- cache_dics_f[cache_key("Point")],
- ]
- }
- },
- }
- cache_dics_t[label] = dic_t
- cache_dics_f[label] = dic_f
- res_t = ContextRecord.objects.get(pk=pk).get_geo_items(get_polygons=True)
- res_f = ContextRecord.objects.get(pk=pk).get_geo_items(get_polygons=False)
- get_pk = "?context_record_pk="
- else:
- real_label = "OA3"
- cache_key_prefix = "CR " + label + " "
- if label == "Pt":
- real_label = "OA2"
- dic_t = {
- "type": "Feature",
- "geometry": {
- "type": "MultiPolygon", "coordinates": geoms[0][0]
- },
- "properties": {
- "label": real_label,
- "context-records": {
- 'type': 'FeatureCollection',
- 'features': [
- cache_dics_t[cache_key_prefix + "Poly"],
- cache_dics_t[cache_key_prefix + "Pt"],
- ]
- }
- },
- }
- dic_f = {
- "type": "Feature",
- "geometry": {
- "type": "Point", "coordinates": BaseGeomaticTest.pt_coords_from_label(label, geoms),
- },
- "properties": {
- "label": real_label,
- "context-records": {
- 'type': 'FeatureCollection',
- 'features': [
- cache_dics_f[cache_key_prefix + "Poly"],
- cache_dics_f[cache_key_prefix + "Pt"],
- ]
- }
- },
- }
- res_t = Operation.objects.get(pk=pk).get_geo_items(get_polygons=True)
- res_f = Operation.objects.get(pk=pk).get_geo_items(get_polygons=False)
- get_pk = "?operation_pk="
-
- self.assertEqual(res_t, dic_t)
- print("url")
- print(url_polys + get_pk + "0")
+
+ self.assertEqual(dic['res_polys'], dic['get_polys'])
response = self.client.get(url_polys + get_pk + "0")
- print('response')
- print(response)
self.assertEqual(response.status_code, 404)
response = self.client.get(url_polys + get_pk + str(pk))
self.assertEqual(response.status_code, 200)
- self.assertEqual(dic_t, json.loads(response.content))
+ self.assertEqual(dic['get_polys'], json.loads(response.content))
- self.assertEqual(dic_f, res_f)
+ self.assertEqual(dic['get_pts'], dic['res_pts'])
response = self.client.get(url_pts + get_pk + "0")
self.assertEqual(response.status_code, 404)
response = self.client.get(url_pts + get_pk + str(pk))
self.assertEqual(response.status_code, 200)
- self.assertEqual(dic_f, json.loads(response.content))
+ self.assertEqual(dic['get_pts'], json.loads(response.content))
@@ -2976,56 +2859,47 @@ class TemplateTest(FindInit, TestCase):
class SeleniumTestsBaseFinds(SeleniumTests):
fixtures = FIND_FIXTURES
- def _test_bf(self, i, dic_polygon, dic_point):
- bf_label = self.selenium.find_element_by_xpath('//tbody/tr[' + str(i) + ']/td[2]').text
- if bf_label[3:5] == "Pt":
- dic_base = dic_point
+ 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])
+ slug_pk = str(bf.SLUG) + "-" + str(bf.pk)
+ print('ACHTUNG: ', bf.most_precise_geo())
+ print(bf.multi_polygon.coords)
+ print(bf.multi_polygon_source)
+ print(bf.multi_polygon_source_item)
+ print(bf.point_2d.coords)
+ print(bf.point_source)
+ print(bf.point_source_item)
+
+ if False: #geojsons[bf_label]['precise']
+ bf_base = geojsons[bf_label]['get_pts']
else:
- dic_base = dic_polygon
- bf = self.selenium.find_element_by_xpath('//tbody/tr[' + str(i) + ']/td/a[@class="display_details"]')
- self.scroll(bf)
- bf.click()
-
- self.assertMap(dic_base)
+ bf_base = geojsons[bf_label]['get_polys']
+ self.assertMap(bf_base, slug_pk)
- title = self.selenium.find_elements_by_xpath(
- '//dl[@class="col-12"]/dt[text()="Display geo items" or text()="Afficher les éléments"]')
+ title = '//dl[@class="col-12"]/dt[text()="Display geo items" or text()="Afficher les éléments"]'
dd = '//dl[@class="col-12"]/dd'
- label = self.selenium.find_elements_by_xpath(dd + '/label[text()="Display associated features: "]')
- disp = self.selenium.find_elements_by_xpath(dd + '/select[@name="display-geo-items"]')
-
- self.assertLess(len(title), 1)
- self.assertLess(len(label), 1)
- self.assertLess(len(disp), 1)
+ disp = dd + '/input[@name="checkbox-geo-items"]'
+ get_poly = dd + '/select[@name="get-poly-geo-items"]'
+ self.assertNotInDOM(title)
+ self.assertNotInDOM(disp)
+ self.assertNotInDOM(get_poly)
def test_geo_items(self):
- self.selenium.implicitly_wait(5)
- geo_elements, pks = self.setUpDefaultGeoItems()
- poly_bf, centr_bf, pt_bf = geo_elements[2]
-
- dic_polygon = {
- 'type': 'FeatureCollection',
- 'features': [
- {'geometry':
- {'coordinates': poly_bf,
- 'type': 'MultiPolygon'},
- 'properties': {},
- 'type': 'Feature'}
- ]}
- dic_point = {
- 'type': 'FeatureCollection',
- 'features': [
- {'geometry':
- {'coordinates': pt_bf,
- 'type': 'Point'},
- 'properties': {},
- 'type': 'Feature'}
- ]}
+ pks, geojsons = self.pks_and_geojson()
for i in range(1, 9):
+ 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="/find_search/"]').click()
- self._test_bf(i, dic_polygon, dic_point)
-
- self.selenium.implicitly_wait(20)
+ self._test_bf(i, pks, geojsons)