summaryrefslogtreecommitdiff
path: root/archaeological_warehouse/tests.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2020-04-08 18:06:26 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2021-02-28 12:15:20 +0100
commit9be03de7917bb321119641b9d0063cd060d9b3c1 (patch)
tree47c2df9adb1820c3993f1e50743dafcf86262e15 /archaeological_warehouse/tests.py
parentb2bb294b82a968b899a852f4fa64495e9cc2984f (diff)
downloadIshtar-9be03de7917bb321119641b9d0063cd060d9b3c1.tar.bz2
Ishtar-9be03de7917bb321119641b9d0063cd060d9b3c1.zip
New container management - merge action
Diffstat (limited to 'archaeological_warehouse/tests.py')
-rw-r--r--archaeological_warehouse/tests.py61
1 files changed, 61 insertions, 0 deletions
diff --git a/archaeological_warehouse/tests.py b/archaeological_warehouse/tests.py
index a342dc1f9..37babf1b2 100644
--- a/archaeological_warehouse/tests.py
+++ b/archaeological_warehouse/tests.py
@@ -538,6 +538,10 @@ class ContainerTest(FindInit, TestCase):
label='division2')
self.div_link = models.WarehouseDivisionLink.objects.create(
warehouse=self.main_warehouse, division=self.division)
+ self.alt_warehouse = models.Warehouse.objects.create(
+ name="Alt",
+ warehouse_type=models.WarehouseType.objects.all()[0]
+ )
def test_form_creation(self):
data = {
@@ -718,3 +722,60 @@ class ContainerTest(FindInit, TestCase):
container_2.external_id, ct.txt_idx,
container_3.reference))
+ def test_merge_candidate(self):
+ ct = models.ContainerType.objects.all()[0]
+ container_1 = models.Container.objects.create(
+ reference="Test", responsible=self.main_warehouse,
+ location=self.main_warehouse,
+ container_type=ct)
+ init_mc = container_1.merge_candidate.count()
+ models.Container.objects.create(
+ reference="TEST", responsible=self.main_warehouse,
+ location=self.main_warehouse,
+ container_type=ct)
+ self.assertEqual(container_1.merge_candidate.count(),
+ init_mc + 1)
+ container_1.archive()
+ self.assertEqual(container_1.merge_candidate.count(),
+ init_mc)
+
+ def test_merge_container(self):
+ ct = models.ContainerType.objects.all()[0]
+ ct2 = models.ContainerType.objects.all()[1]
+ self.create_finds()
+ self.create_finds()
+ self.create_finds()
+ find0 = self.finds[0]
+ find1 = self.finds[1]
+ find2 = self.finds[2]
+
+ container_1 = models.Container.objects.create(
+ reference="Test 1",
+ location=self.main_warehouse,
+ container_type=ct)
+ find0.container = container_1
+ find0.container_ref = container_1
+ find0.save()
+ find1.container = container_1
+ find1.container_ref = container_1
+ find1.save()
+
+ container_2 = models.Container.objects.create(
+ reference="Test 2",
+ location=self.alt_warehouse,
+ container_type=ct2)
+ find2.container = container_2
+ find2.container_ref = container_2
+ find2.save()
+
+ container_1.merge(container_2)
+ container_1 = models.Container.objects.get(pk=container_1.pk)
+ self.assertEqual(
+ models.Container.objects.filter(pk=container_2.pk).count(), 0)
+
+ # preserve existing fields
+ self.assertEqual(container_1.reference, 'Test 1')
+ self.assertEqual(container_1.container_type, ct)
+ find_lst = [f for f in container_1.finds.all()]
+ for f in [find0, find1, find2]:
+ self.assertIn(f, find_lst)