summaryrefslogtreecommitdiff
path: root/archaeological_context_records/tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_context_records/tests.py')
-rw-r--r--archaeological_context_records/tests.py97
1 files changed, 93 insertions, 4 deletions
diff --git a/archaeological_context_records/tests.py b/archaeological_context_records/tests.py
index fe4bb7674..c56964670 100644
--- a/archaeological_context_records/tests.py
+++ b/archaeological_context_records/tests.py
@@ -140,6 +140,30 @@ class ContextRecordTest(ContextRecordInit, TestCase):
models.RecordRelations.objects.create(
left_record=cr_1, right_record=cr_2, relation_type=sym_rel_type)
+ def testExternalID(self):
+ cr = self.context_records[0]
+ self.assertEqual(
+ cr.external_id,
+ u"{}-{}".format(cr.parcel.external_id, cr.label))
+
+
+class ContextRecordSearchTest(ContextRecordInit, TestCase):
+ fixtures = ImportContextRecordTest.fixtures
+
+ def setUp(self):
+ IshtarSiteProfile.objects.create()
+ self.username, self.password, self.user = create_superuser()
+ self.create_context_record(data={"label": u"CR 1"})
+ self.create_context_record(data={"label": u"CR 2"})
+
+ cr_1 = self.context_records[0]
+ cr_2 = self.context_records[1]
+ sym_rel_type = models.RelationType.objects.filter(
+ symmetrical=True).all()[0]
+ self.cr_rel_type = sym_rel_type
+ models.RecordRelations.objects.create(
+ left_record=cr_1, right_record=cr_2, relation_type=sym_rel_type)
+
def testSearchExport(self):
c = Client()
response = c.get(reverse('get-contextrecord'))
@@ -187,11 +211,76 @@ class ContextRecordTest(ContextRecordInit, TestCase):
lines = [line for line in response.content.split('\n') if line]
self.assertEqual(len(lines), 3)
- def testZExternalID(self):
+ def testUnitHierarchicSearch(self):
cr = self.context_records[0]
- self.assertEqual(
- cr.external_id,
- u"{}-{}".format(cr.parcel.external_id, cr.label))
+ c = Client()
+
+ neg = models.Unit.objects.get(txt_idx='negative')
+ dig = models.Unit.objects.get(txt_idx='digging')
+ dest = models.Unit.objects.get(txt_idx='partial_destruction')
+ cr.unit = (dig)
+ cr.save()
+ search = {'unit': dig.pk}
+
+ # no result when no authentication
+ response = c.get(reverse('get-contextrecord'), search)
+ self.assertEqual(response.status_code, 200)
+ self.assertTrue(not json.loads(response.content))
+
+ # one result for exact search
+ c.login(username=self.username, password=self.password)
+ response = c.get(reverse('get-contextrecord'), search)
+ self.assertEqual(response.status_code, 200)
+ self.assertEqual(json.loads(response.content)['total'], 1)
+
+ # no result for the brother
+ search = {'unit': dest.pk}
+ response = c.get(reverse('get-contextrecord'), search)
+ self.assertEqual(response.status_code, 200)
+ self.assertEqual(json.loads(response.content)['total'], 0)
+
+ # one result for the father
+ search = {'unit': neg.pk}
+ response = c.get(reverse('get-contextrecord'), search)
+ self.assertEqual(response.status_code, 200)
+ self.assertEqual(json.loads(response.content)['total'], 1)
+
+ def testPeriodHierarchicSearch(self):
+ cr = self.context_records[0]
+ c = Client()
+
+ neo = models.Period.objects.get(txt_idx='neolithic')
+ final_neo = models.Period.objects.get(txt_idx='final_neolithic')
+ recent_neo = models.Period.objects.get(txt_idx='recent_neolithic')
+ dating = models.Dating.objects.create(
+ period=final_neo
+ )
+ cr.datings.add(dating)
+
+ search = {'datings__period': final_neo.pk}
+
+ # no result when no authentication
+ response = c.get(reverse('get-contextrecord'), search)
+ self.assertEqual(response.status_code, 200)
+ self.assertTrue(not json.loads(response.content))
+
+ # one result for exact search
+ c.login(username=self.username, password=self.password)
+ response = c.get(reverse('get-contextrecord'), search)
+ self.assertEqual(response.status_code, 200)
+ self.assertEqual(json.loads(response.content)['total'], 1)
+
+ # no result for the brother
+ search = {'datings__period': recent_neo.pk}
+ response = c.get(reverse('get-contextrecord'), search)
+ self.assertEqual(response.status_code, 200)
+ self.assertEqual(json.loads(response.content)['total'], 0)
+
+ # one result for the father
+ search = {'datings__period': neo.pk}
+ response = c.get(reverse('get-contextrecord'), search)
+ self.assertEqual(response.status_code, 200)
+ self.assertEqual(json.loads(response.content)['total'], 1)
class RecordRelationsTest(ContextRecordInit, TestCase):