diff options
Diffstat (limited to 'archaeological_finds/tests.py')
| -rw-r--r-- | archaeological_finds/tests.py | 113 | 
1 files changed, 111 insertions, 2 deletions
diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py index a86890839..fc51cea70 100644 --- a/archaeological_finds/tests.py +++ b/archaeological_finds/tests.py @@ -34,7 +34,8 @@ from ishtar_common.models import Person, get_current_profile, UserProfile, \  from archaeological_context_records.models import Period, Dating, \      ContextRecord, DatingType, DatingQuality  from archaeological_finds import models, views -from archaeological_warehouse.models import Warehouse, WarehouseType +from archaeological_warehouse.models import Warehouse, WarehouseType, \ +    ContainerType, Container  from ishtar_common import forms_common @@ -759,7 +760,7 @@ class FindPermissionTest(FindInit, TestCase):  class FindQATest(FindInit, TestCase): -    fixtures = FIND_FIXTURES +    fixtures = WAREHOUSE_FIXTURES      model = models.Find      def setUp(self): @@ -816,6 +817,114 @@ class FindQATest(FindInit, TestCase):          self.assertEqual(models.Find.objects.get(pk=find_1.pk).description,                           base_desc_1 + u"\n" + extra_desc) +    def test_packaging(self): +        c = Client() +        find_0 = self.finds[0] +        find_1 = self.finds[1] +        pks = u"{}-{}".format(find_0.pk, find_1.pk) +        url = reverse('find-qa-packaging', args=[pks]) +        response = c.get(url) +        self.assertRedirects(response, '/') + +        c = Client() +        c.login(username=self.username, password=self.password) +        response = c.get(url) +        # warehouse profile must be activated +        self.assertEqual(response.status_code, 404) + +        profile, created = IshtarSiteProfile.objects.get_or_create( +            slug='default', active=True) +        profile.warehouse = True +        profile.save() +        response = c.get(url) +        self.assertEqual(response.status_code, 200) + +        c = Client() +        c.login(username=self.alt_username, password=self.alt_password) +        response = c.get(url) +        self.assertEqual(response.status_code, 200) + +        main_warehouse = Warehouse.objects.create( +            name="Main", +            warehouse_type=WarehouseType.objects.all()[0] +        ) + +        container = Container.objects.create( +            reference="Test", responsible=main_warehouse, +            location=main_warehouse, +            container_type=ContainerType.objects.all()[0] +        ) +        container2 = Container.objects.create( +            reference="Test2", responsible=main_warehouse, +            location=main_warehouse, +            container_type=ContainerType.objects.all()[0] +        ) +        packaging = models.TreatmentType.objects.get(txt_idx='packaging') +        packaging.change_reference_location = True +        packaging.save() + +        data_check_lst = [ +            ({ +                 'qa-packaging-container': container.pk, +                 'qa-packaging-container_to_change': 'reference', +             }, +             { +                 'container_ref': container, +                 'container': None +             }, 0), +            ({ +                 'qa-packaging-container': container2.pk, +                 'qa-packaging-container_to_change': 'current', +             }, +             { +                 'container_ref': None, +                 'container': container2 +             }, 0), +            ({ +                 'qa-packaging-container': container.pk, +                 'qa-packaging-container_to_change': 'current-and-reference', +             }, +             { +                 'container_ref': container, +                 'container': container +             }, 0), +            ({ +                 'qa-packaging-container': container2.pk, +                 'qa-packaging-container_to_change': 'reference', +                 'qa-packaging-create_treatment': True, +                 'qa-packaging-year': 2019, +                 'qa-packaging-treatment_type': packaging.pk +             }, +             { +                 'container_ref': container2, +                 'container': None +             }, 1), +        ] + +        for data, check, nb_treat in data_check_lst: +            # reinit +            find_0.container, find_0.container_ref = None, None +            find_0.skip_history_when_saving = True +            find_0.save() +            find_1.container, find_1.container_ref = None, None +            find_1.skip_history_when_saving = True +            find_1.save() + +            init_nb_treat = models.Treatment.objects.count() + +            response = c.post( +                reverse('find-qa-packaging', args=[pks]), +                data) +            self.assertRedirects(response, '/success/') +            for k in check: +                find = models.Find.objects.get(pk=find_0.pk) +                self.assertEqual(getattr(find, k), check[k]) +                find = models.Find.objects.get(pk=find_1.pk) +                self.assertEqual(getattr(find, k), check[k]) + +            final_nb_treat = models.Treatment.objects.count() +            self.assertEqual(init_nb_treat + nb_treat, final_nb_treat) +  class FindHistoryTest(FindInit, TestCase):      fixtures = FIND_FIXTURES  | 
