diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-01-29 18:50:24 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-01-29 18:51:53 +0100 |
commit | c7ad0854b7e8d95fcd1d48287063eac2db8bff39 (patch) | |
tree | 0ca065af2ce3b7afbc682cceb9999a680870015e /archaeological_finds/tests.py | |
parent | d1ccd3fe6f240882b2158e046b4e7908a814930f (diff) | |
download | Ishtar-c7ad0854b7e8d95fcd1d48287063eac2db8bff39.tar.bz2 Ishtar-c7ad0854b7e8d95fcd1d48287063eac2db8bff39.zip |
QA packaging: allow to change ref and current containers
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 |