summaryrefslogtreecommitdiff
path: root/archaeological_warehouse/tests.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2020-06-09 12:05:37 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2021-02-28 12:15:20 +0100
commitcbe8d22ccecad9e09dd70f5fdbbd78bf497671a9 (patch)
treed59806d5799ac74b9134183fba5a0ecf8b762d65 /archaeological_warehouse/tests.py
parent8d908f14a8cd15734a522c17c144efe06e21416a (diff)
downloadIshtar-cbe8d22ccecad9e09dd70f5fdbbd78bf497671a9.tar.bz2
Ishtar-cbe8d22ccecad9e09dd70f5fdbbd78bf497671a9.zip
Fix container merge
Diffstat (limited to 'archaeological_warehouse/tests.py')
-rw-r--r--archaeological_warehouse/tests.py180
1 files changed, 115 insertions, 65 deletions
diff --git a/archaeological_warehouse/tests.py b/archaeological_warehouse/tests.py
index 2fc492caa..a76c2763f 100644
--- a/archaeological_warehouse/tests.py
+++ b/archaeological_warehouse/tests.py
@@ -119,46 +119,46 @@ class SerializationTest(GenericSerializationTest, FindInit, TestCase):
f2.container = c5
f2.container_ref = c5
f2.save()
- wd1 = models.WarehouseDivision.objects.create(
- label="Étagère", txt_idx="etagere"
- )
- wd2 = models.WarehouseDivision.objects.create(
- label="Allée", txt_idx="allee"
- )
+ ct1 = models.ContainerType.objects.all()[0]
+ ct2 = models.ContainerType.objects.all()[1]
wl1 = models.WarehouseDivisionLink.objects.create(
warehouse=w1,
- division=wd1
+ container_type=ct1
)
wl2 = models.WarehouseDivisionLink.objects.create(
warehouse=w1,
- division=wd2
+ container_type=ct2
)
wl3 = models.WarehouseDivisionLink.objects.create(
warehouse=w2,
- division=wd2
+ container_type=ct2
)
wl4 = models.WarehouseDivisionLink.objects.create(
warehouse=w3,
- division=wd1
+ container_type=ct1
)
- models.ContainerLocalisation.objects.create(
- container=c1,
- division=wl1,
- reference="A1"
+ models.Container.objects.create(
+ location=c1.location,
+ parent=c1,
+ container_type=ct1,
+ reference="A1",
)
- models.ContainerLocalisation.objects.create(
- container=c1,
- division=wl2,
+ models.Container.objects.create(
+ location=c1.location,
+ parent=c1,
+ container_type=ct2,
reference="A2"
)
- models.ContainerLocalisation.objects.create(
- container=c2,
- division=wl3,
+ models.Container.objects.create(
+ location=c2.location,
+ parent=c2,
+ container_type=ct2,
reference="A4"
)
- models.ContainerLocalisation.objects.create(
- container=c3,
- division=wl4,
+ models.Container.objects.create(
+ location=c3.location,
+ parent=c3,
+ container_type=ct1,
reference="A5"
)
@@ -172,17 +172,12 @@ class SerializationTest(GenericSerializationTest, FindInit, TestCase):
container_json = json.loads(
res[('warehouse', "archaeological_warehouse__Container")]
)
- self.assertEqual(len(container_json), 5)
+ self.assertEqual(len(container_json), 5 + 4)
div_json = json.loads(
res[('warehouse',
"archaeological_warehouse__WarehouseDivisionLink")]
)
self.assertEqual(len(div_json), 4)
- loca_json = json.loads(
- res[('warehouse',
- "archaeological_warehouse__ContainerLocalisation")]
- )
- self.assertEqual(len(loca_json), 4)
result_queryset = Operation.objects.filter(uuid=self.operations[0].uuid)
res = self.generic_serialization_test(
@@ -202,11 +197,6 @@ class SerializationTest(GenericSerializationTest, FindInit, TestCase):
"archaeological_warehouse__WarehouseDivisionLink")]
)
self.assertEqual(len(div_json), 3)
- loca_json = json.loads(
- res[('warehouse',
- "archaeological_warehouse__ContainerLocalisation")]
- )
- self.assertEqual(len(loca_json), 3)
result_queryset = ContextRecord.objects.filter(
uuid=self.context_records[0].uuid)
@@ -227,11 +217,6 @@ class SerializationTest(GenericSerializationTest, FindInit, TestCase):
"archaeological_warehouse__WarehouseDivisionLink")]
)
self.assertEqual(len(div_json), 3)
- loca_json = json.loads(
- res[('warehouse',
- "archaeological_warehouse__ContainerLocalisation")]
- )
- self.assertEqual(len(loca_json), 3)
result_queryset = Find.objects.filter(uuid=self.finds[0].uuid)
res = self.generic_serialization_test(
@@ -251,11 +236,6 @@ class SerializationTest(GenericSerializationTest, FindInit, TestCase):
"archaeological_warehouse__WarehouseDivisionLink")]
)
self.assertEqual(len(div_json), 3)
- loca_json = json.loads(
- res[('warehouse',
- "archaeological_warehouse__ContainerLocalisation")]
- )
- self.assertEqual(len(loca_json), 3)
result_queryset = models.Warehouse.objects.filter(
id=self.warehouses[0].id)
@@ -270,17 +250,12 @@ class SerializationTest(GenericSerializationTest, FindInit, TestCase):
container_json = json.loads(
res[('warehouse', "archaeological_warehouse__Container")]
)
- self.assertEqual(len(container_json), 3)
+ self.assertEqual(len(container_json), 3 + 3)
div_json = json.loads(
res[('warehouse',
"archaeological_warehouse__WarehouseDivisionLink")]
)
self.assertEqual(len(div_json), 2)
- loca_json = json.loads(
- res[('warehouse',
- "archaeological_warehouse__ContainerLocalisation")]
- )
- self.assertEqual(len(loca_json), 2)
def test_ope_serialization_with_warehouse_filter(self):
res = self.generic_serialization_test(
@@ -383,7 +358,7 @@ class WarehouseWizardCreationTest(WizardTest, FindInit, TestCase):
},
'divisions-warehouse_creation': [
{
- 'division': None,
+ 'container_type': None,
'order': 42
}
]
@@ -410,8 +385,8 @@ class WarehouseWizardCreationTest(WizardTest, FindInit, TestCase):
models.WarehouseType.objects.all()[0].pk
alt_data['warehouse-warehouse_creation']['warehouse_type'] = \
models.WarehouseType.objects.all()[0].pk
- main_data['divisions-warehouse_creation'][0]['division'] = \
- models.WarehouseDivision.create_default_for_test()[0].pk
+ main_data['divisions-warehouse_creation'][0]['container_type'] = \
+ models.ContainerType.objects.all()[0].pk
self.warehouse_number = models.Warehouse.objects.count()
self.warehouse_div_link = models.WarehouseDivisionLink.objects.count()
super(WarehouseWizardCreationTest, self).pre_wizard()
@@ -453,12 +428,13 @@ class ContainerWizardCreationTest(WizardTest, FindInit, TestCase):
},
),
FormData(
- 'Container creation with location',
+ 'Container creation',
form_datas={
'container-container_creation': {
'reference': 'hop-ref3',
'container_type': None,
'location': None,
+ 'parent': None,
},
},
),
@@ -482,24 +458,19 @@ class ContainerWizardCreationTest(WizardTest, FindInit, TestCase):
name="Alt",
warehouse_type=models.WarehouseType.objects.all()[0]
)
- div = models.WarehouseDivision.objects.create(label='division')
- div_link = models.WarehouseDivisionLink.objects.create(
- warehouse=alt_warehouse, division=div)
alt_data['container-container_creation']["location"] = alt_warehouse.pk
- alt_data['localisation-container_creation'] = {
- 'division_{}'.format(div_link.pk): 'Combien ?'
- }
-
+ alt_data['container-container_creation']["parent"] = \
+ models.Container.objects.create(
+ reference="Plop",
+ container_type=models.ContainerType.objects.all()[1],
+ location=alt_warehouse
+ ).pk
self.container_number = models.Container.objects.count()
- self.localisation_detail_number = \
- models.ContainerLocalisation.objects.count()
super(ContainerWizardCreationTest, self).pre_wizard()
def post_wizard(self):
self.assertEqual(models.Container.objects.count(),
self.container_number + 3)
- self.assertEqual(models.ContainerLocalisation.objects.count(),
- self.localisation_detail_number + 1)
class WarehouseTest(TestCase):
@@ -773,3 +744,82 @@ class ContainerTest(FindInit, TestCase):
find_lst = [f for f in container_1.finds.all()]
for f in [find0, find1, find2]:
self.assertIn(f, find_lst)
+
+ def test_merge_included_containers(self):
+ ct = models.ContainerType.objects.all()[0]
+ ct2 = models.ContainerType.objects.all()[1]
+ ct3 = models.ContainerType.objects.all()[2]
+ self.create_finds()
+ self.create_finds()
+ self.create_finds()
+ self.create_finds()
+ find0 = self.finds[0]
+ find1 = self.finds[1]
+ find2 = self.finds[2]
+ find3 = self.finds[3]
+
+ top_container_1 = models.Container.objects.create(
+ reference="Topref 1",
+ location=self.main_warehouse,
+ container_type=ct)
+ find0.container = top_container_1
+ find0.container_ref = top_container_1
+ find0.save()
+
+ top_container_2 = models.Container.objects.create(
+ reference="Topref 2",
+ location=self.main_warehouse,
+ container_type=ct)
+ find1.container = top_container_2
+ find1.container_ref = top_container_2
+ find1.save()
+
+ middle_container_1 = models.Container.objects.create(
+ reference="Middle ref",
+ location=self.main_warehouse,
+ parent=top_container_1,
+ container_type=ct2)
+ find2.container = middle_container_1
+ find2.container_ref = middle_container_1
+ find2.save()
+
+ middle_container_2 = models.Container.objects.create(
+ reference="Middle ref",
+ location=self.main_warehouse,
+ parent=top_container_2,
+ container_type=ct2)
+
+ bottom_container_3 = models.Container.objects.create(
+ reference="Bottom ref",
+ location=self.main_warehouse,
+ parent=middle_container_2,
+ container_type=ct3)
+ find3.container = bottom_container_3
+ find3.container_ref = bottom_container_3
+ find3.save()
+
+ top_container_1.merge(top_container_2)
+
+ find0 = Find.objects.get(pk=find0.pk)
+ self.assertEqual(find0.container, top_container_1)
+ find1 = Find.objects.get(pk=find1.pk)
+ self.assertEqual(find1.container, top_container_1)
+ q = models.Container.objects.filter(reference="Topref 2")
+ self.assertEqual(q.count(), 0)
+ q = models.Container.objects.filter(reference="Topref 1")
+ self.assertEqual(q.count(), 1)
+ top_ref = q.all()[0]
+ self.assertEqual(top_ref.finds.count(), 2)
+
+ q = models.Container.objects.filter(reference="Middle ref")
+ self.assertEqual(q.count(), 1)
+ middle = q.all()[0]
+ self.assertEqual(middle.parent, top_ref)
+
+ q = models.Container.objects.filter(reference="Bottom ref")
+ self.assertEqual(q.count(), 1)
+ bottom = q.all()[0]
+ self.assertEqual(bottom.parent, middle)
+
+
+