diff options
Diffstat (limited to 'archaeological_warehouse/tests.py')
-rw-r--r-- | archaeological_warehouse/tests.py | 61 |
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) |