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