diff options
Diffstat (limited to 'archaeological_warehouse/tests.py')
-rw-r--r-- | archaeological_warehouse/tests.py | 682 |
1 files changed, 332 insertions, 350 deletions
diff --git a/archaeological_warehouse/tests.py b/archaeological_warehouse/tests.py index dc1744312..503057cdf 100644 --- a/archaeological_warehouse/tests.py +++ b/archaeological_warehouse/tests.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Copyright (C) 2017 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> @@ -25,9 +25,15 @@ from django.test.client import Client from archaeological_finds.tests import FindInit -from ishtar_common.tests import WizardTest, WizardTestFormData as FormData, \ - TestCase, WAREHOUSE_FIXTURES, GenericSerializationTest, COMMON_FIXTURES, \ - create_user +from ishtar_common.tests import ( + WizardTest, + WizardTestFormData as FormData, + TestCase, + WAREHOUSE_FIXTURES, + GenericSerializationTest, + COMMON_FIXTURES, + create_user, +) from ishtar_common.models import IshtarSiteProfile, SpatialReferenceSystem from archaeological_operations.models import Operation @@ -47,12 +53,8 @@ class SerializationTest(GenericSerializationTest, FindInit, TestCase): def setUp(self): ope1 = self.create_operation()[0] ope2 = self.create_operation()[1] - cr = self.create_context_record( - data={"label": "CR 1", "operation": ope1} - )[0] - cr2 = self.create_context_record( - data={"label": "CR 2", "operation": ope2} - )[1] + cr = self.create_context_record(data={"label": "CR 1", "operation": ope1})[0] + cr2 = self.create_context_record(data={"label": "CR 2", "operation": ope2})[1] self.create_finds(data_base={"context_record": cr}) self.create_finds(data_base={"context_record": cr2}) self.create_finds(data_base={"context_record": cr2}) @@ -78,7 +80,7 @@ class SerializationTest(GenericSerializationTest, FindInit, TestCase): container_type=models.ContainerType.objects.all()[0], reference="Réf1", index=1, - external_id="ref1-1" + external_id="ref1-1", ) c2 = models.Container.objects.create( location=w2, @@ -86,7 +88,7 @@ class SerializationTest(GenericSerializationTest, FindInit, TestCase): container_type=models.ContainerType.objects.all()[0], reference="Réf2", index=2, - external_id="ref2-2" + external_id="ref2-2", ) f0 = self.finds[0] f0.container = c1 @@ -98,7 +100,7 @@ class SerializationTest(GenericSerializationTest, FindInit, TestCase): container_type=models.ContainerType.objects.all()[0], reference="Réf3", index=1, - external_id="ref3-1" + external_id="ref3-1", ) c4 = models.Container.objects.create( location=w2, @@ -106,7 +108,7 @@ class SerializationTest(GenericSerializationTest, FindInit, TestCase): container_type=models.ContainerType.objects.all()[0], reference="Réf4", index=2, - external_id="ref4-2" + external_id="ref4-2", ) f1 = self.finds[1] f1.container = c3 @@ -118,7 +120,7 @@ class SerializationTest(GenericSerializationTest, FindInit, TestCase): container_type=models.ContainerType.objects.all()[0], reference="Réf5", index=1, - external_id="ref5-2" + external_id="ref5-2", ) f2 = self.finds[2] f2.container = c5 @@ -127,20 +129,16 @@ class SerializationTest(GenericSerializationTest, FindInit, TestCase): ct1 = models.ContainerType.objects.all()[0] ct2 = models.ContainerType.objects.all()[1] wl1 = models.WarehouseDivisionLink.objects.create( - warehouse=w1, - container_type=ct1 + warehouse=w1, container_type=ct1 ) wl2 = models.WarehouseDivisionLink.objects.create( - warehouse=w1, - container_type=ct2 + warehouse=w1, container_type=ct2 ) wl3 = models.WarehouseDivisionLink.objects.create( - warehouse=w2, - container_type=ct2 + warehouse=w2, container_type=ct2 ) wl4 = models.WarehouseDivisionLink.objects.create( - warehouse=w3, - container_type=ct1 + warehouse=w3, container_type=ct1 ) models.Container.objects.create( location=c1.location, @@ -149,297 +147,280 @@ class SerializationTest(GenericSerializationTest, FindInit, TestCase): reference="A1", ) models.Container.objects.create( - location=c1.location, - parent=c1, - container_type=ct2, - reference="A2" + location=c1.location, parent=c1, container_type=ct2, reference="A2" ) models.Container.objects.create( - location=c2.location, - parent=c2, - container_type=ct2, - reference="A4" + location=c2.location, parent=c2, container_type=ct2, reference="A4" ) models.Container.objects.create( - location=c3.location, - parent=c3, - container_type=ct1, - reference="A5" + location=c3.location, parent=c3, container_type=ct1, reference="A5" ) def test_serialization(self): - res = self.generic_serialization_test( - serializers.warehouse_serialization) + res = self.generic_serialization_test(serializers.warehouse_serialization) warehouse_json = json.loads( - res[('warehouse', "archaeological_warehouse__Warehouse")] + res[("warehouse", "archaeological_warehouse__Warehouse")] ) self.assertEqual(len(warehouse_json), 3) container_json = json.loads( - res[('warehouse', "archaeological_warehouse__Container")] + res[("warehouse", "archaeological_warehouse__Container")] ) self.assertEqual(len(container_json), 5 + 4) div_json = json.loads( - res[('warehouse', - "archaeological_warehouse__WarehouseDivisionLink")] + res[("warehouse", "archaeological_warehouse__WarehouseDivisionLink")] ) self.assertEqual(len(div_json), 4) result_queryset = Operation.objects.filter(uuid=self.operations[0].uuid) res = self.generic_serialization_test( - serializers.warehouse_serialization, no_test=True, - kwargs={"operation_queryset": result_queryset} + serializers.warehouse_serialization, + no_test=True, + kwargs={"operation_queryset": result_queryset}, ) warehouse_json = json.loads( - res[('warehouse', "archaeological_warehouse__Warehouse")] + res[("warehouse", "archaeological_warehouse__Warehouse")] ) self.assertEqual(len(warehouse_json), 2) container_json = json.loads( - res[('warehouse', "archaeological_warehouse__Container")] + res[("warehouse", "archaeological_warehouse__Container")] ) self.assertEqual(len(container_json), 2) div_json = json.loads( - res[('warehouse', - "archaeological_warehouse__WarehouseDivisionLink")] + res[("warehouse", "archaeological_warehouse__WarehouseDivisionLink")] ) self.assertEqual(len(div_json), 3) result_queryset = ContextRecord.objects.filter( - uuid=self.context_records[0].uuid) + uuid=self.context_records[0].uuid + ) res = self.generic_serialization_test( - serializers.warehouse_serialization, no_test=True, - kwargs={"cr_queryset": result_queryset} + serializers.warehouse_serialization, + no_test=True, + kwargs={"cr_queryset": result_queryset}, ) warehouse_json = json.loads( - res[('warehouse', "archaeological_warehouse__Warehouse")] + res[("warehouse", "archaeological_warehouse__Warehouse")] ) self.assertEqual(len(warehouse_json), 2) container_json = json.loads( - res[('warehouse', "archaeological_warehouse__Container")] + res[("warehouse", "archaeological_warehouse__Container")] ) self.assertEqual(len(container_json), 2) div_json = json.loads( - res[('warehouse', - "archaeological_warehouse__WarehouseDivisionLink")] + res[("warehouse", "archaeological_warehouse__WarehouseDivisionLink")] ) self.assertEqual(len(div_json), 3) result_queryset = Find.objects.filter(uuid=self.finds[0].uuid) res = self.generic_serialization_test( - serializers.warehouse_serialization, no_test=True, - kwargs={"find_queryset": result_queryset} + serializers.warehouse_serialization, + no_test=True, + kwargs={"find_queryset": result_queryset}, ) warehouse_json = json.loads( - res[('warehouse', "archaeological_warehouse__Warehouse")] + res[("warehouse", "archaeological_warehouse__Warehouse")] ) self.assertEqual(len(warehouse_json), 2) container_json = json.loads( - res[('warehouse', "archaeological_warehouse__Container")] + res[("warehouse", "archaeological_warehouse__Container")] ) self.assertEqual(len(container_json), 2) div_json = json.loads( - res[('warehouse', - "archaeological_warehouse__WarehouseDivisionLink")] + res[("warehouse", "archaeological_warehouse__WarehouseDivisionLink")] ) self.assertEqual(len(div_json), 3) - result_queryset = models.Warehouse.objects.filter( - id=self.warehouses[0].id) + result_queryset = models.Warehouse.objects.filter(id=self.warehouses[0].id) res = self.generic_serialization_test( - serializers.warehouse_serialization, no_test=True, - kwargs={"warehouse_queryset": result_queryset} + serializers.warehouse_serialization, + no_test=True, + kwargs={"warehouse_queryset": result_queryset}, ) warehouse_json = json.loads( - res[('warehouse', "archaeological_warehouse__Warehouse")] + res[("warehouse", "archaeological_warehouse__Warehouse")] ) self.assertEqual(len(warehouse_json), 1) container_json = json.loads( - res[('warehouse', "archaeological_warehouse__Container")] + res[("warehouse", "archaeological_warehouse__Container")] ) self.assertEqual(len(container_json), 3 + 3) div_json = json.loads( - res[('warehouse', - "archaeological_warehouse__WarehouseDivisionLink")] + res[("warehouse", "archaeological_warehouse__WarehouseDivisionLink")] ) self.assertEqual(len(div_json), 2) def test_ope_serialization_with_warehouse_filter(self): res = self.generic_serialization_test( - operation_serialization, no_test=True, + operation_serialization, + no_test=True, ) ope_json = json.loads( - res[('operations', 'archaeological_operations__Operation')] + res[("operations", "archaeological_operations__Operation")] ) self.assertEqual(len(ope_json), 2) - result_queryset = models.Warehouse.objects.filter( - id=self.warehouses[0].pk) + result_queryset = models.Warehouse.objects.filter(id=self.warehouses[0].pk) res = self.generic_serialization_test( - operation_serialization, no_test=True, - kwargs={"warehouse_queryset": result_queryset} + operation_serialization, + no_test=True, + kwargs={"warehouse_queryset": result_queryset}, ) ope_json = json.loads( - res[('operations', 'archaeological_operations__Operation')] + res[("operations", "archaeological_operations__Operation")] ) self.assertEqual(len(ope_json), 1) def test_cr_serialization_with_warehouse_filter(self): res = self.generic_serialization_test( - cr_serialization, no_test=True, + cr_serialization, + no_test=True, ) cr_json = json.loads( - res[('context_records', - 'archaeological_context_records__ContextRecord')] + res[("context_records", "archaeological_context_records__ContextRecord")] ) self.assertEqual(len(cr_json), 2) - result_queryset = models.Warehouse.objects.filter( - id=self.warehouses[0].pk) + result_queryset = models.Warehouse.objects.filter(id=self.warehouses[0].pk) res = self.generic_serialization_test( - cr_serialization, no_test=True, - kwargs={"warehouse_queryset": result_queryset} + cr_serialization, + no_test=True, + kwargs={"warehouse_queryset": result_queryset}, ) cr_json = json.loads( - res[('context_records', - 'archaeological_context_records__ContextRecord')] + res[("context_records", "archaeological_context_records__ContextRecord")] ) self.assertEqual(len(cr_json), 1) def test_find_serialization_with_warehouse_filter(self): res = self.generic_serialization_test( - find_serialization, no_test=True, - ) - find_json = json.loads( - res[('finds', 'archaeological_finds__Find')] + find_serialization, + no_test=True, ) + find_json = json.loads(res[("finds", "archaeological_finds__Find")]) self.assertEqual(len(find_json), 3) - bfind_json = json.loads( - res[('finds', 'archaeological_finds__BaseFind')] - ) + bfind_json = json.loads(res[("finds", "archaeological_finds__BaseFind")]) self.assertEqual(len(bfind_json), 3) - result_queryset = models.Warehouse.objects.filter( - id=self.warehouses[0].pk) + result_queryset = models.Warehouse.objects.filter(id=self.warehouses[0].pk) res = self.generic_serialization_test( - find_serialization, no_test=True, - kwargs={"warehouse_queryset": result_queryset} - ) - find_json = json.loads( - res[('finds', 'archaeological_finds__Find')] + find_serialization, + no_test=True, + kwargs={"warehouse_queryset": result_queryset}, ) + find_json = json.loads(res[("finds", "archaeological_finds__Find")]) self.assertEqual(len(find_json), 1) - bfind_json = json.loads( - res[('finds', 'archaeological_finds__BaseFind')] - ) + bfind_json = json.loads(res[("finds", "archaeological_finds__BaseFind")]) self.assertEqual(len(bfind_json), 1) def test_restore(self): current_number, zip_filename = self.generic_restore_test_genzip( - serializers.WAREHOUSE_MODEL_LIST, - serializers.warehouse_serialization) - self.generic_restore_test(zip_filename, current_number, - serializers.WAREHOUSE_MODEL_LIST) + serializers.WAREHOUSE_MODEL_LIST, serializers.warehouse_serialization + ) + self.generic_restore_test( + zip_filename, current_number, serializers.WAREHOUSE_MODEL_LIST + ) class WarehouseWizardCreationTest(WizardTest, FindInit, TestCase): fixtures = WAREHOUSE_FIXTURES - url_name = 'warehouse_creation' - wizard_name = 'warehouse_wizard' + url_name = "warehouse_creation" + wizard_name = "warehouse_wizard" steps = views.warehouse_creation_steps - redirect_url = "/warehouse_modification/selec-warehouse_modification"\ - "?open_item={last_id}" + redirect_url = ( + "/warehouse_modification/selec-warehouse_modification" "?open_item={last_id}" + ) model = models.Warehouse # back is messing with divisions but it is not a real problem because # reinit is necessary test_back = False form_datas = [ FormData( - 'Warehouse creation', + "Warehouse creation", form_datas={ - 'warehouse-warehouse_creation': { - 'name': 'warehouse-ref', - 'warehouse_type': None, - 'location': None, - 'responsible': None, + "warehouse-warehouse_creation": { + "name": "warehouse-ref", + "warehouse_type": None, + "location": None, + "responsible": None, }, - 'divisions-warehouse_creation': [ - { - 'container_type': None, - 'order': 42 - } - ] + "divisions-warehouse_creation": [{"container_type": None, "order": 42}], }, ), FormData( - 'Warehouse creation with no division', + "Warehouse creation with no division", form_datas={ - 'warehouse-warehouse_creation': { - 'name': 'warehouse-ref', - 'warehouse_type': None, - 'location': None, - 'responsible': None, + "warehouse-warehouse_creation": { + "name": "warehouse-ref", + "warehouse_type": None, + "location": None, + "responsible": None, }, }, - ignored=['divisions-warehouse_creation'] + ignored=["divisions-warehouse_creation"], ), ] def pre_wizard(self): main_data = self.form_datas[0].form_datas alt_data = self.form_datas[1].form_datas - main_data['warehouse-warehouse_creation']['warehouse_type'] = \ - 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]['container_type'] = \ - models.ContainerType.objects.all()[0].pk + main_data["warehouse-warehouse_creation"][ + "warehouse_type" + ] = 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][ + "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() def post_wizard(self): - self.assertEqual(models.Warehouse.objects.count(), - self.warehouse_number + 2) - self.assertEqual(models.WarehouseDivisionLink.objects.count(), - self.warehouse_div_link + 1) + self.assertEqual(models.Warehouse.objects.count(), self.warehouse_number + 2) + self.assertEqual( + models.WarehouseDivisionLink.objects.count(), self.warehouse_div_link + 1 + ) class ContainerWizardCreationTest(WizardTest, FindInit, TestCase): fixtures = WAREHOUSE_FIXTURES - url_name = 'container_creation' - wizard_name = 'container_wizard' + url_name = "container_creation" + wizard_name = "container_wizard" steps = views.container_creation_steps - redirect_url = '/container_modification/selec-container_modification'\ - '?open_item={last_id}' + redirect_url = ( + "/container_modification/selec-container_modification" "?open_item={last_id}" + ) model = models.Container form_datas = [ FormData( - 'Container creation', + "Container creation", form_datas={ - 'container-container_creation': { - 'reference': 'hop-ref', - 'container_type': None, - 'location': None, + "container-container_creation": { + "reference": "hop-ref", + "container_type": None, + "location": None, }, }, ), FormData( - 'Other container on the same warehouse', + "Other container on the same warehouse", form_datas={ - 'container-container_creation': { - 'reference': 'hop-ref2', - 'container_type': None, - 'location': None, + "container-container_creation": { + "reference": "hop-ref2", + "container_type": None, + "location": None, }, }, ), FormData( - 'Container creation', + "Container creation", form_datas={ - 'container-container_creation': { - 'reference': 'hop-ref3', - 'container_type': None, - 'location': None, - 'parent': None, + "container-container_creation": { + "reference": "hop-ref3", + "container_type": None, + "location": None, + "parent": None, }, }, ), @@ -447,35 +428,32 @@ class ContainerWizardCreationTest(WizardTest, FindInit, TestCase): def pre_wizard(self): main_warehouse = models.Warehouse.objects.create( - name="Main", - warehouse_type=models.WarehouseType.objects.all()[0] + name="Main", warehouse_type=models.WarehouseType.objects.all()[0] ) main_data = self.form_datas[0].form_datas main_data_bis = self.form_datas[1].form_datas alt_data = self.form_datas[2].form_datas for data in [main_data, main_data_bis, alt_data]: - forms_data = data['container-container_creation'] + forms_data = data["container-container_creation"] forms_data["responsible"] = main_warehouse.pk forms_data["location"] = main_warehouse.pk - forms_data["container_type"] = \ - models.ContainerType.objects.all()[0].pk + forms_data["container_type"] = models.ContainerType.objects.all()[0].pk alt_warehouse = models.Warehouse.objects.create( - name="Alt", - warehouse_type=models.WarehouseType.objects.all()[0] - ) - alt_data['container-container_creation']["location"] = alt_warehouse.pk - alt_data['container-container_creation']["parent"] = \ - models.Container.objects.create( - reference="Plop", - container_type=models.ContainerType.objects.all()[1], - location=alt_warehouse - ).pk + name="Alt", warehouse_type=models.WarehouseType.objects.all()[0] + ) + alt_data["container-container_creation"]["location"] = alt_warehouse.pk + 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() super(ContainerWizardCreationTest, self).pre_wizard() def post_wizard(self): - self.assertEqual(models.Container.objects.count(), - self.container_number + 3) + self.assertEqual(models.Container.objects.count(), self.container_number + 3) class WarehouseTest(TestCase): @@ -483,8 +461,9 @@ class WarehouseTest(TestCase): def setUp(self): self.warehouse = models.Warehouse.objects.create( - name="Hophop", warehouse_type=models.WarehouseType.objects.all()[0], - address="Adresse" + name="Hophop", + warehouse_type=models.WarehouseType.objects.all()[0], + address="Adresse", ) self.container_types = models.ContainerType.objects.all()[:4] @@ -499,20 +478,20 @@ class WarehouseTest(TestCase): def test_localisation_import(self): container_nb = models.Container.objects.count() base_value = "A;42;allée 3\;2" - error = self.warehouse._add_localisations( - None, base_value, return_errors=True) + error = self.warehouse._add_localisations(None, base_value, return_errors=True) self.assertTrue(error) # no division set for idx, ct in enumerate(self.container_types): models.WarehouseDivisionLink.objects.create( - container_type=ct, order=idx * 10, warehouse=self.warehouse) + container_type=ct, order=idx * 10, warehouse=self.warehouse + ) too_many_value = "A;42;allée 3\;2;5;42;3" error = self.warehouse._add_localisations( - None, too_many_value, return_errors=True) + None, too_many_value, return_errors=True + ) self.assertTrue(error) - error = self.warehouse._add_localisations( - None, base_value, return_errors=True) + error = self.warehouse._add_localisations(None, base_value, return_errors=True) self.assertIsNone(error) parent = None for idx, reference in enumerate(("A", "42", "allée 3;2")): @@ -520,18 +499,21 @@ class WarehouseTest(TestCase): parent=parent, location=self.warehouse, container_type=self.container_types[idx], - reference=reference) + reference=reference, + ) self.assertEqual( - q.count(), 1, "Division {} {} - parent {} not created".format( - self.container_types[idx], reference, parent)) + q.count(), + 1, + "Division {} {} - parent {} not created".format( + self.container_types[idx], reference, parent + ), + ) parent = q.all()[0] new_container_nb = models.Container.objects.count() - self.assertEqual(container_nb + len(self.container_types), - new_container_nb) + self.assertEqual(container_nb + len(self.container_types), new_container_nb) value = "A;42;allée 4" - error = self.warehouse._add_localisations( - None, value, return_errors=True) + error = self.warehouse._add_localisations(None, value, return_errors=True) self.assertIsNone(error) # only create a new container self.assertEqual(new_container_nb + 1, models.Container.objects.count()) @@ -541,13 +523,13 @@ class WarehouseTest(TestCase): parent__location=self.warehouse, location=self.warehouse, container_type=self.container_types[2], - reference="allée 4") + reference="allée 4", + ) self.assertEqual(q.count(), 1) # test with an empty localisation value = "A;42;;35" - error = self.warehouse._add_localisations( - None, value, return_errors=True) + error = self.warehouse._add_localisations(None, value, return_errors=True) self.assertIsNone(error) q = models.Container.objects.filter( parent__reference="42", @@ -555,7 +537,8 @@ class WarehouseTest(TestCase): parent__location=self.warehouse, location=self.warehouse, container_type=self.container_types[3], - reference="35") + reference="35", + ) self.assertEqual(q.count(), 1) @@ -564,39 +547,37 @@ class ContainerTest(FindInit, TestCase): def setUp(self): self.main_warehouse = models.Warehouse.objects.create( - name="Main", - warehouse_type=models.WarehouseType.objects.all()[0] + name="Main", warehouse_type=models.WarehouseType.objects.all()[0] ) - self.division = models.WarehouseDivision.objects.create( - label='division') - self.alt_division = models.WarehouseDivision.objects.create( - label='division2') + self.division = models.WarehouseDivision.objects.create(label="division") + self.alt_division = models.WarehouseDivision.objects.create(label="division2") self.div_link = models.WarehouseDivisionLink.objects.create( - warehouse=self.main_warehouse, division=self.division) + warehouse=self.main_warehouse, division=self.division + ) self.alt_warehouse = models.Warehouse.objects.create( - name="Alt", - warehouse_type=models.WarehouseType.objects.all()[0] + name="Alt", warehouse_type=models.WarehouseType.objects.all()[0] ) def test_container_search(self): ct = models.ContainerType.objects.order_by("id").all()[0] ct2 = models.ContainerType.objects.order_by("id").all()[1] container_1 = models.Container.objects.create( - reference="Test", responsible=self.main_warehouse, + reference="Test", + responsible=self.main_warehouse, location=self.main_warehouse, - container_type=ct + container_type=ct, ) container_2 = models.Container.objects.create( - reference="35000", responsible=self.main_warehouse, + reference="35000", + responsible=self.main_warehouse, parent=container_1, location=self.main_warehouse, - container_type=ct2 + container_type=ct2, ) container_2.index = 42000 container_2.save() username, password, user = create_user() - user.user_permissions.add(Permission.objects.get( - codename='view_warehouse')) + user.user_permissions.add(Permission.objects.get(codename="view_warehouse")) client = Client() client.login(username=username, password=password) url = "/autocomplete-container/{}/".format(self.main_warehouse.pk) @@ -620,50 +601,57 @@ class ContainerTest(FindInit, TestCase): def test_form_creation(self): data = { - 'reference': 'hop-ref', + "reference": "hop-ref", "responsible": self.main_warehouse.pk, "location": self.main_warehouse.pk, - "container_type": models.ContainerType.objects.all()[0].pk + "container_type": models.ContainerType.objects.all()[0].pk, } form = forms.ContainerForm(data=data) self.assertTrue(form.is_valid(), msg="{}".format(form.errors)) self.container_number = models.Container.objects.count() self.create_user() form.save(self.user) - self.assertEqual(models.Container.objects.count(), - self.container_number + 1) + self.assertEqual(models.Container.objects.count(), self.container_number + 1) def test_change_location(self): container = models.Container.objects.create( - reference="Test", responsible=self.main_warehouse, + reference="Test", + responsible=self.main_warehouse, location=self.main_warehouse, - container_type=models.ContainerType.objects.all()[0] + container_type=models.ContainerType.objects.all()[0], ) container.save() container = models.Container.objects.get(pk=container.pk) container_2 = models.Container.objects.create( - reference="Test2", responsible=self.main_warehouse, + reference="Test2", + responsible=self.main_warehouse, location=self.main_warehouse, container_type=models.ContainerType.objects.all()[0], - parent=container + parent=container, ) self.assertIn(self.main_warehouse.name, container.cached_location) models.ContainerLocalisation.objects.create( - container=container, division=self.div_link, + container=container, + division=self.div_link, ) - self.assertTrue(models.ContainerLocalisation.objects.filter( - division__warehouse=self.main_warehouse).count()) + self.assertTrue( + models.ContainerLocalisation.objects.filter( + division__warehouse=self.main_warehouse + ).count() + ) # changing location remove irrelevant localisation other_warehouse = models.Warehouse.objects.create( - name="Other", - warehouse_type=models.WarehouseType.objects.all()[0] + name="Other", warehouse_type=models.WarehouseType.objects.all()[0] ) container.location = other_warehouse container.save() - self.assertFalse(models.ContainerLocalisation.objects.filter( - division__warehouse=self.main_warehouse).count()) + self.assertFalse( + models.ContainerLocalisation.objects.filter( + division__warehouse=self.main_warehouse + ).count() + ) container_2 = models.Container.objects.get(pk=container_2.pk) self.assertEqual(container_2.location, other_warehouse) @@ -710,24 +698,21 @@ class ContainerTest(FindInit, TestCase): def test_update_containers_on_warehouse_update(self): container = models.Container.objects.create( - reference="Test", responsible=self.main_warehouse, + reference="Test", + responsible=self.main_warehouse, location=self.main_warehouse, - container_type=models.ContainerType.objects.all()[0] + container_type=models.ContainerType.objects.all()[0], ) container.save() container = models.Container.objects.get(pk=container.pk) self.assertIn(self.main_warehouse.name, container.cached_location) self.main_warehouse.name = "New name" self.main_warehouse.save() + self.assertEqual(models.Container.objects.filter(need_update=True).count(), 1) self.assertEqual( - models.Container.objects.filter( - need_update=True - ).count(), 1) - self.assertEqual( - models.Container.objects.filter( - pk=container.pk, - need_update=True - ).count(), 1) + models.Container.objects.filter(pk=container.pk, need_update=True).count(), + 1, + ) container = models.Container.objects.get(pk=container.pk) # process pending update container.skip_history_when_saving = True @@ -738,15 +723,17 @@ class ContainerTest(FindInit, TestCase): def test_update_container_localisation_on_warehouse_update(self): profile, created = IshtarSiteProfile.objects.get_or_create( - slug='default', active=True) + slug="default", active=True + ) profile.mapping = True profile.locate_warehouses = True profile.save() wgs84 = SpatialReferenceSystem.objects.get(srid=4326) container = models.Container.objects.create( - reference="Test", responsible=self.main_warehouse, + reference="Test", + responsible=self.main_warehouse, location=self.main_warehouse, - container_type=models.ContainerType.objects.all()[0] + container_type=models.ContainerType.objects.all()[0], ) container.save() self.assertEqual(container.x, None) @@ -757,10 +744,9 @@ class ContainerTest(FindInit, TestCase): main_warehouse.save() # an update is pending self.assertEqual( - models.Container.objects.filter( - pk=container.pk, - need_update=True - ).count(), 1) + models.Container.objects.filter(pk=container.pk, need_update=True).count(), + 1, + ) # process pending update container = models.Container.objects.get(pk=container.pk) @@ -775,64 +761,70 @@ class ContainerTest(FindInit, TestCase): def test_external_id(self): ct = models.ContainerType.objects.all()[0] container_1 = models.Container.objects.create( - reference="Test", responsible=self.main_warehouse, + reference="Test", + responsible=self.main_warehouse, location=self.main_warehouse, - container_type=ct + container_type=ct, ) container_2 = models.Container.objects.create( - reference="Test 2", responsible=self.main_warehouse, + reference="Test 2", + responsible=self.main_warehouse, parent=container_1, location=self.main_warehouse, - container_type=ct + container_type=ct, ) container_3 = models.Container.objects.create( - reference="Test 3", responsible=self.main_warehouse, + reference="Test 3", + responsible=self.main_warehouse, parent=container_2, location=self.main_warehouse, - container_type=ct + container_type=ct, ) self.assertEqual( container_1.external_id, "{}-{}-{}".format( - self.main_warehouse.external_id, ct.txt_idx, - container_1.reference)) + self.main_warehouse.external_id, ct.txt_idx, container_1.reference + ), + ) self.assertEqual( container_2.external_id, "{}-{}-{}".format( - container_1.external_id, ct.txt_idx, - container_2.reference)) + container_1.external_id, ct.txt_idx, container_2.reference + ), + ) self.assertEqual( container_3.external_id, "{}-{}-{}".format( - container_2.external_id, ct.txt_idx, - container_3.reference)) + 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, + reference="Test", + responsible=self.main_warehouse, location=self.main_warehouse, - container_type=ct) + container_type=ct, + ) init_mc = container_1.merge_candidate.count() container_2 = models.Container.objects.create( - reference="TEST", responsible=self.main_warehouse, + reference="TEST", + responsible=self.main_warehouse, location=self.main_warehouse, - container_type=ct) - self.assertEqual(container_1.merge_candidate.count(), - init_mc + 1) + 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) + self.assertEqual(container_1.merge_candidate.count(), init_mc) container_1 = models.Container.objects.get(pk=container_1.pk) container_1.archived = False container_1.save() container_2 = models.Container.objects.get(pk=container_2.pk) - self.assertEqual(container_1.merge_candidate.count(), - init_mc + 1) + self.assertEqual(container_1.merge_candidate.count(), init_mc + 1) container_2.location = self.alt_warehouse container_2.save() - self.assertEqual(container_1.merge_candidate.count(), - init_mc) + self.assertEqual(container_1.merge_candidate.count(), init_mc) def test_merge_container(self): ct = models.ContainerType.objects.all()[0] @@ -845,9 +837,8 @@ class ContainerTest(FindInit, TestCase): find2 = self.finds[2] container_1 = models.Container.objects.create( - reference="Test 1", - location=self.main_warehouse, - container_type=ct) + reference="Test 1", location=self.main_warehouse, container_type=ct + ) find0.container = container_1 find0.container_ref = container_1 find0.save() @@ -856,20 +847,18 @@ class ContainerTest(FindInit, TestCase): find1.save() container_2 = models.Container.objects.create( - reference="Test 2", - location=self.alt_warehouse, - container_type=ct2) + 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) + 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.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]: @@ -889,17 +878,15 @@ class ContainerTest(FindInit, TestCase): find3 = self.finds[3] top_container_1 = models.Container.objects.create( - reference="Topref 1", - location=self.main_warehouse, - container_type=ct) + 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.alt_warehouse, - container_type=ct) + reference="Topref 2", location=self.alt_warehouse, container_type=ct + ) find1.container = top_container_2 find1.container_ref = top_container_2 find1.save() @@ -908,7 +895,8 @@ class ContainerTest(FindInit, TestCase): reference="Middle ref", location=self.main_warehouse, parent=top_container_1, - container_type=ct2) + container_type=ct2, + ) find2.container = middle_container_1 find2.container_ref = middle_container_1 find2.save() @@ -917,13 +905,15 @@ class ContainerTest(FindInit, TestCase): reference="Middle ref", location=self.alt_warehouse, parent=top_container_2, - container_type=ct2) + container_type=ct2, + ) bottom_container_3 = models.Container.objects.create( reference="Bottom ref", location=self.alt_warehouse, parent=middle_container_2, - container_type=ct3) + container_type=ct3, + ) find3.container = bottom_container_3 find3.container_ref = bottom_container_3 find3.save() @@ -956,8 +946,7 @@ class ContainerTest(FindInit, TestCase): def test_bulk_update(self): username, password, user = create_user() - user.user_permissions.add(Permission.objects.get( - codename='change_container')) + user.user_permissions.add(Permission.objects.get(codename="change_container")) client = Client() ct = models.ContainerType.objects.all()[0] @@ -966,34 +955,32 @@ class ContainerTest(FindInit, TestCase): container_parent = models.Container.objects.create( reference="Parent container", location=self.main_warehouse, - container_type=ct) + container_type=ct, + ) container_parent2 = models.Container.objects.create( reference="Parent container 2", location=self.alt_warehouse, - container_type=ct) + container_type=ct, + ) container = models.Container.objects.create( reference="Test", location=self.main_warehouse, parent=container_parent, - container_type=ct2) + container_type=ct2, + ) # base modification - url = reverse('container-qa-bulk-update', args=[container.pk]) - data = { - "qacontainer_type": ct.pk, - "qalocation": '', - "qaparent": '' - } + url = reverse("container-qa-bulk-update", args=[container.pk]) + data = {"qacontainer_type": ct.pk, "qalocation": "", "qaparent": ""} response = client.post(url, data) - self.assertRedirects(response, '/') + self.assertRedirects(response, "/") client.login(username=username, password=password) response = client.post(url, data) self.assertEqual(response.status_code, 200) - confirm_url = reverse( - 'container-qa-bulk-update-confirm', args=[container.pk]) + confirm_url = reverse("container-qa-bulk-update-confirm", args=[container.pk]) response = client.post(confirm_url, data) - self.assertRedirects(response, '/success/') + self.assertRedirects(response, "/success/") container = models.Container.objects.get(pk=container.pk) self.assertEqual(container.container_type_id, ct.pk) @@ -1002,12 +989,12 @@ class ContainerTest(FindInit, TestCase): container.save() data = { - "qacontainer_type": '', + "qacontainer_type": "", "qalocation": self.alt_warehouse.pk, - "qaparent": container_parent2.pk + "qaparent": container_parent2.pk, } response = client.post(confirm_url, data) - self.assertRedirects(response, '/success/') + self.assertRedirects(response, "/success/") container = models.Container.objects.get(pk=container.pk) self.assertEqual(container.location, self.alt_warehouse) @@ -1020,14 +1007,15 @@ class ContainerTest(FindInit, TestCase): # change location of children data = { - "qacontainer_type": '', + "qacontainer_type": "", "qalocation": self.alt_warehouse.pk, - "qaparent": '' + "qaparent": "", } confirm_parent_url = reverse( - 'container-qa-bulk-update-confirm', args=[container_parent.pk]) + "container-qa-bulk-update-confirm", args=[container_parent.pk] + ) response = client.post(confirm_parent_url, data) - self.assertRedirects(response, '/success/') + self.assertRedirects(response, "/success/") container_parent = models.Container.objects.get(pk=container_parent.pk) self.assertEqual(container_parent.location, self.alt_warehouse) @@ -1043,12 +1031,12 @@ class ContainerTest(FindInit, TestCase): # reinit parent when not provided and location changed data = { - "qacontainer_type": '', + "qacontainer_type": "", "qalocation": self.alt_warehouse.pk, - "qaparent": '' + "qaparent": "", } response = client.post(confirm_url, data) - self.assertRedirects(response, '/success/') + self.assertRedirects(response, "/success/") container = models.Container.objects.get(pk=container.pk) self.assertEqual(container.location, self.alt_warehouse) self.assertEqual(container.parent, None) @@ -1061,44 +1049,41 @@ class ContainerTest(FindInit, TestCase): ct2.stationary = True ct2.save() - q = models.Container.objects.filter( - location=self.main_warehouse).order_by("-index") + q = models.Container.objects.filter(location=self.main_warehouse).order_by( + "-index" + ) if q.count(): base_index = q.all()[0].index else: base_index = 0 container_1 = models.Container.objects.create( - reference="Ref 1", - location=self.main_warehouse, - container_type=ct) - self.assertEqual(models.Container.objects.get(pk=container_1.pk).index, - base_index + 1) + reference="Ref 1", location=self.main_warehouse, container_type=ct + ) + self.assertEqual( + models.Container.objects.get(pk=container_1.pk).index, base_index + 1 + ) container_2 = models.Container.objects.create( - reference="Ref 2", - location=self.main_warehouse, - container_type=ct) - self.assertEqual(models.Container.objects.get(pk=container_2.pk).index, - base_index + 2) + reference="Ref 2", location=self.main_warehouse, container_type=ct + ) + self.assertEqual( + models.Container.objects.get(pk=container_2.pk).index, base_index + 2 + ) container_3 = models.Container.objects.create( - reference="Ref 3", - location=self.main_warehouse, - container_type=ct2) + reference="Ref 3", location=self.main_warehouse, container_type=ct2 + ) self.assertEqual(container_3.index, None) - self.assertEqual(models.Container.objects.get(pk=container_3.pk).index, - None) + self.assertEqual(models.Container.objects.get(pk=container_3.pk).index, None) container_4 = models.Container.objects.create( - reference="Ref 4", - location=self.main_warehouse, - container_type=ct2) + reference="Ref 4", location=self.main_warehouse, container_type=ct2 + ) self.assertEqual(container_4.index, None) - self.assertEqual(models.Container.objects.get(pk=container_4.pk).index, - None) + self.assertEqual(models.Container.objects.get(pk=container_4.pk).index, None) container_5 = models.Container.objects.create( - reference="Ref 5", - location=self.main_warehouse, - container_type=ct) - self.assertEqual(models.Container.objects.get(pk=container_5.pk).index, - base_index + 3) + reference="Ref 5", location=self.main_warehouse, container_type=ct + ) + self.assertEqual( + models.Container.objects.get(pk=container_5.pk).index, base_index + 3 + ) def test_get_material_types(self): mat0 = MaterialType.objects.all()[0] @@ -1117,13 +1102,11 @@ class ContainerTest(FindInit, TestCase): find2 = self.finds[2] container_1 = models.Container.objects.create( - reference="Test 1", - location=self.main_warehouse, - container_type=ct) + reference="Test 1", location=self.main_warehouse, container_type=ct + ) container_2 = models.Container.objects.create( - reference="Test 2", - location=self.alt_warehouse, - container_type=ct) + reference="Test 2", location=self.alt_warehouse, container_type=ct + ) find0.container = container_1 find0.save() find1.container = container_1 @@ -1133,16 +1116,16 @@ class ContainerTest(FindInit, TestCase): find1.save() # no material inside this container - self.assertEqual( - container_2.get_material_types(), "") + self.assertEqual(container_2.get_material_types(), "") self.assertEqual( container_1.get_material_types(), - ", ".join(sorted([mat0.label, mat1.label, mat2.label])) + ", ".join(sorted([mat0.label, mat1.label, mat2.label])), ) self.assertEqual( container_1.get_material_types_code(), - "|".join(sorted([mat0.code, mat1.code, mat2.code]))) + "|".join(sorted([mat0.code, mat1.code, mat2.code])), + ) def test_calculated_weight(self): self.create_finds() @@ -1160,9 +1143,8 @@ class ContainerTest(FindInit, TestCase): ct.tare_weight = 200 ct.save() container_1 = models.Container.objects.create( - reference="Test 1", - location=self.main_warehouse, - container_type=ct) + reference="Test 1", location=self.main_warehouse, container_type=ct + ) container_1.save() self.assertEqual(container_1.calculated_weight, 200) self.assertEqual(container_1.cached_weight, 200) @@ -1188,7 +1170,8 @@ class ContainerTest(FindInit, TestCase): self.assertEqual(container_1.cached_weight, 1500) profile, created = IshtarSiteProfile.objects.get_or_create( - slug='default', active=True) + slug="default", active=True + ) profile.calculate_weight_on_full = True profile.save() @@ -1210,4 +1193,3 @@ class ContainerTest(FindInit, TestCase): container_1 = models.Container.objects.get(pk=container_1.pk) self.assertEqual(container_1.calculated_weight, None) self.assertEqual(container_1.cached_weight, None) - |