diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-01-30 13:56:52 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-01-30 13:56:52 +0100 |
commit | 42d91015eb14e607cfb6cd414175682553f429b8 (patch) | |
tree | 429269e02dbfe6cb9580f935eabb777024217004 /archaeological_context_records/tests.py | |
parent | dbefccd512ffed5e7d7d365f20f76720651cd578 (diff) | |
download | Ishtar-42d91015eb14e607cfb6cd414175682553f429b8.tar.bz2 Ishtar-42d91015eb14e607cfb6cd414175682553f429b8.zip |
Fix material_types search for finds - add tests for hierarchical searches
Diffstat (limited to 'archaeological_context_records/tests.py')
-rw-r--r-- | archaeological_context_records/tests.py | 97 |
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): |