diff options
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):  | 
