summaryrefslogtreecommitdiff
path: root/archaeological_warehouse/tests.py
diff options
context:
space:
mode:
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)