summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2023-07-19 11:46:12 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2023-07-19 11:46:12 +0200
commitef89abddeb5634c2356652c95d548c836e31b23c (patch)
tree0235ce7f022e6b31594c980ad8c280c6289ce59a /ishtar_common
parent6c7ea8432d5ffc431d37b0f8726443d23ab6f9eb (diff)
downloadIshtar-ef89abddeb5634c2356652c95d548c836e31b23c.tar.bz2
Ishtar-ef89abddeb5634c2356652c95d548c836e31b23c.zip
✅ document packaging test
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/tests.py100
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: