diff options
Diffstat (limited to 'archaeological_finds/tests.py')
| -rw-r--r-- | archaeological_finds/tests.py | 66 | 
1 files changed, 63 insertions, 3 deletions
| diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py index 353ebbdbb..a55e075b7 100644 --- a/archaeological_finds/tests.py +++ b/archaeological_finds/tests.py @@ -20,7 +20,7 @@  import json  from django.conf import settings -from django.contrib.auth.models import User, Permission +from django.contrib.auth.models import User, Permission, ContentType  from django.core.files import File  from django.core.files.uploadedfile import SimpleUploadedFile  from django.core.urlresolvers import reverse @@ -683,10 +683,12 @@ class FindPermissionTest(FindInit, TestCase):      def setUp(self):          self.username, self.password, self.user = create_superuser()          self.alt_username, self.alt_password, self.alt_user = create_user() +        ct_find = ContentType.objects.get(app_label='archaeological_finds', +                                          model='find')          self.alt_user.user_permissions.add(Permission.objects.get( -            codename='view_own_find')) +            codename='view_own_find', content_type=ct_find))          self.alt_user.user_permissions.add(Permission.objects.get( -            codename='change_own_find')) +            codename='change_own_find', content_type=ct_find))          self.alt_username2, self.alt_password2, self.alt_user2 = create_user(              username='luke', password='iamyourfather'          ) @@ -747,6 +749,64 @@ class FindPermissionTest(FindInit, TestCase):          self.assertEqual(json.loads(response.content)['recordsTotal'], 1) +class FindQATest(FindInit, TestCase): +    fixtures = FIND_FIXTURES +    model = models.Find + +    def setUp(self): +        self.create_finds(data_base={"label": u"Find 1"}, force=True) +        self.create_finds(data_base={"label": u"Find 2"}, force=True) +        self.username, self.password, self.user = create_superuser() +        self.alt_username, self.alt_password, self.alt_user = create_user() +        self.alt_user.user_permissions.add(Permission.objects.get( +            codename='change_find')) + +    def test_bulk_update(self): +        c = Client() +        pks = u"{}-{}".format(self.finds[0].pk, self.finds[1].pk) +        response = c.get(reverse('find-qa-bulk-update', args=[pks])) +        self.assertRedirects(response, '/') + +        c = Client() +        c.login(username=self.username, password=self.password) +        response = c.get(reverse('find-qa-bulk-update', args=[pks])) +        self.assertEqual(response.status_code, 200) + +        c = Client() +        c.login(username=self.alt_username, password=self.alt_password) +        response = c.get(reverse('find-qa-bulk-update', args=[pks])) +        self.assertEqual(response.status_code, 200) + +        find_0 = self.finds[0] +        find_1 = self.finds[1] +        base_desc_0 = u"Base description 1" +        find_0.description = base_desc_0 +        find_0.save() +        base_desc_1 = u"Base description 2" +        find_1.description = base_desc_1 +        find_1.save() + +        period = Period.objects.all()[0].pk +        self.assertNotIn(period, +                         [dating.period.pk for dating in find_0.datings.all()]) +        self.assertNotIn(period, +                         [dating.period.pk for dating in find_1.datings.all()]) +        extra_desc = u"Extra description" +        response = c.post( +            reverse('find-qa-bulk-update-confirm', args=[pks]), +            {'qa_period': period, 'qa_description': extra_desc} +        ) +        self.assertRedirects(response, '/success/') +        self.assertIn(period, +                      [dating.period.pk for dating in find_0.datings.all()]) +        self.assertIn(period, +                      [dating.period.pk for dating in find_1.datings.all()]) +        self.assertEqual(models.Find.objects.get(pk=find_0.pk).description, +                         base_desc_0 + u"\n" + extra_desc) +        self.assertEqual(models.Find.objects.get(pk=find_1.pk).description, +                         base_desc_1 + u"\n" + extra_desc) + +  class PackagingTest(FindInit, TestCase):      fixtures = FIND_FIXTURES      model = models.Find | 
