diff options
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/tests.py | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py index 3d69315b4..6cd6db9e3 100644 --- a/ishtar_common/tests.py +++ b/ishtar_common/tests.py @@ -3793,6 +3793,106 @@ class DocumentQATest(TestCase): models.Document.objects.get(pk=self.doc_2.pk).tags.first(), self.tag ) + def test_packaging(self): + c = Client() + pks = "{}-{}".format(self.doc_1.pk, self.doc_2.pk) + url = reverse("document-qa-packaging", args=[pks]) + response = c.get(url) + self.assertRedirects(response, "/") + profile, created = models.IshtarSiteProfile.objects.get_or_create( + slug="default", active=True + ) + profile.warehouse = False + profile.save() + + 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.warehouse = True + profile.save() + response = c.get(url) + self.assertEqual(response.status_code, 200) + + c = Client() + c.login(username=self.username, password=self.password) + response = c.get(url) + self.assertEqual(response.status_code, 200) + + WarehouseType = apps.get_model("archaeological_warehouse", "WarehouseType") + Warehouse = apps.get_model("archaeological_warehouse", "Warehouse") + ContainerType = apps.get_model("archaeological_warehouse", "ContainerType") + Container = apps.get_model("archaeological_warehouse", "Container") + + wt = WarehouseType.objects.create(label="Dépôt", txt_idx="depot") + main_warehouse = Warehouse.objects.create( + name="Main", warehouse_type=wt + ) + + ct = ContainerType.objects.create(label="Boite", txt_idx="boite") + container = Container.objects.create( + reference="Test", + responsible=main_warehouse, + location=main_warehouse, + container_type=ct, + ) + container2 = Container.objects.create( + reference="Test2", + responsible=main_warehouse, + location=main_warehouse, + container_type=ct, + ) + + data_check_lst = [ + ( + { + "qa-packaging-container": container.pk, + "qa-packaging-container_to_change": "reference", + }, + {"container_ref": container, "container": None}, + ), + ( + { + "qa-packaging-container": container2.pk, + "qa-packaging-container_to_change": "current", + }, + {"container_ref": None, "container": container2}, + ), + ( + { + "qa-packaging-container": container.pk, + "qa-packaging-container_to_change": "current-and-reference", + }, + {"container_ref": container, "container": container}, + ), + ( + { + "qa-packaging-container": container2.pk, + "qa-packaging-container_to_change": "reference", + }, + {"container_ref": container2, "container": None}, + ), + ] + + for data, check in data_check_lst: + # reinit + self.doc_1.container_id, self.doc_1.container_ref_id = None, None + self.doc_1.skip_history_when_saving = True + self.doc_1.save() + self.doc_2.container_id, self.doc_2.container_ref_id = None, None + self.doc_2.skip_history_when_saving = True + self.doc_2.save() + + response = c.post(reverse("document-qa-packaging", args=[pks]), data) + self.assertRedirects(response, "/success/") + for k in check: + doc = models.Document.objects.get(pk=self.doc_1.pk) + self.assertEqual(getattr(doc, k), check[k]) + doc = models.Document.objects.get(pk=self.doc_2.pk) + self.assertEqual(getattr(doc, k), check[k]) + class StorageTest(TestCase): def setUp(self) -> None: |