diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-02-06 12:23:49 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-02-06 12:23:49 +0100 |
commit | 376cc82d102a66b6776ec96dcdab81bb87c3af20 (patch) | |
tree | 601aff6a2742c4ce68786c799fa032958b62f23c | |
parent | 44a3af002413cebcb81449515febe6e11abc54cb (diff) | |
download | Ishtar-376cc82d102a66b6776ec96dcdab81bb87c3af20.tar.bz2 Ishtar-376cc82d102a66b6776ec96dcdab81bb87c3af20.zip |
Test: refactor - should be a little bit faster
-rw-r--r-- | archaeological_context_records/tests.py | 53 | ||||
-rw-r--r-- | archaeological_finds/tests.py | 28 | ||||
-rw-r--r-- | archaeological_operations/tests.py | 141 |
3 files changed, 112 insertions, 110 deletions
diff --git a/archaeological_context_records/tests.py b/archaeological_context_records/tests.py index 87eb80c57..032861d5d 100644 --- a/archaeological_context_records/tests.py +++ b/archaeological_context_records/tests.py @@ -29,67 +29,40 @@ from django.test.client import Client from ishtar_common.models import ImporterType, IshtarSiteProfile from ishtar_common.tests import create_superuser from archaeological_operations.tests import OperationInitTest, \ - ImportOperationTest + ImportTest, ImportOperationTest from archaeological_operations import models as models_ope from archaeological_context_records import models -from ishtar_common import forms_common -class ImportContextRecordTest(ImportOperationTest): - test_operations = False - test_context_records = True +class ImportContextRecordTest(ImportTest, TestCase): fixtures = ImportOperationTest.fixtures + [ settings.ROOT_PATH + '../archaeological_context_records/fixtures/initial_data-fr.json', ] - def testMCCImportContextRecords(self, test=True): - if test and not self.test_context_records: - return - self.testMCCImportParcels(test=False) - + def test_mcc_import_contextrecords(self): old_nb = models.ContextRecord.objects.count() - MCC = ImporterType.objects.get(name=u"MCC - UE") - mcc_file = open( - settings.ROOT_PATH + - '../archaeological_context_records/tests/' - 'MCC-context-records-example.csv', 'rb') - file_dict = {'imported_file': SimpleUploadedFile(mcc_file.name, - mcc_file.read())} - post_dict = {'importer_type': MCC.pk, 'skip_lines': 1, - "encoding": 'utf-8'} - form = forms_common.NewImportForm(data=post_dict, files=file_dict, - instance=None) - form.is_valid() - if test: - self.assertTrue(form.is_valid()) + mcc, form = self.init_context_record_import() + + self.assertTrue(form.is_valid()) impt = form.save(self.ishtar_user) impt.initialize() - # doing manual connections - hc = models.Unit.objects.get(txt_idx='not_in_context').pk - self.setTargetKey('unit', 'hc', hc) - self.setTargetKey('unit', 'hors-contexte', hc) - layer = models.Unit.objects.get(txt_idx='layer').pk - self.setTargetKey('unit', 'couche', layer) - + self.init_cr_targetkey(impt) impt.importation() - if not test: - return - - # new ues has now been imported + # new context records has now been imported current_nb = models.ContextRecord.objects.count() - self.assertTrue(current_nb == (old_nb + 4)) + self.assertEqual(current_nb, old_nb + 4) self.assertEqual( - models.ContextRecord.objects.filter(unit__pk=hc).count(), 3) + models.ContextRecord.objects.filter( + unit__txt_idx='not_in_context').count(), 3) self.assertEqual( - models.ContextRecord.objects.filter(unit__pk=layer).count(), 1) + models.ContextRecord.objects.filter( + unit__txt_idx='layer').count(), 1) class ContextRecordInit(OperationInitTest): - test_operations = False - def create_context_record(self, user=None, data={}, force=False): if not getattr(self, 'context_records', None): self.context_records = [] diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py index f0112123b..a1dc33dd8 100644 --- a/archaeological_finds/tests.py +++ b/archaeological_finds/tests.py @@ -33,11 +33,12 @@ from archaeological_context_records.models import Period, Dating from archaeological_finds import models, views from archaeological_warehouse.models import Warehouse, WarehouseType -from archaeological_context_records.tests import ImportContextRecordTest, \ - ContextRecordInit - from ishtar_common import forms_common + from ishtar_common.tests import WizardTest, WizardTestFormData as FormData +from archaeological_operations.tests import ImportTest +from archaeological_context_records.tests import ImportContextRecordTest, \ + ContextRecordInit class FindInit(ContextRecordInit): @@ -217,17 +218,14 @@ class ATreatmentWizardCreationTest(WizardTest, FindInit, TestCase): treat) -class ImportFindTest(ImportContextRecordTest): - test_operations = False - test_context_records = False - +class ImportFindTest(ImportTest, TestCase): fixtures = ImportContextRecordTest.fixtures + [ settings.ROOT_PATH + '../archaeological_finds/fixtures/initial_data-fr.json', ] - def testMCCImportFinds(self, test=True): - self.testMCCImportContextRecords(test=False) + def test_mcc_import_finds(self): + self.init_context_record() old_nb = models.BaseFind.objects.count() old_nb_find = models.Find.objects.count() @@ -252,22 +250,18 @@ class ImportFindTest(ImportContextRecordTest): mcc_images.read())} post_dict = {'importer_type': MCC.pk, 'skip_lines': 1, "encoding": 'utf-8'} - form = forms_common.NewImportForm(data=post_dict, files=file_dict, - instance=None) + form = forms_common.NewImportForm(data=post_dict, files=file_dict) form.is_valid() - if test: - self.assertTrue(form.is_valid()) + self.assertTrue(form.is_valid()) impt = form.save(self.ishtar_user) impt.initialize() # doing manual connections ceram = models.MaterialType.objects.get(txt_idx='ceramic').pk glass = models.MaterialType.objects.get(txt_idx='glass').pk - self.setTargetKey('find__material_types', 'terre-cuite', ceram) - self.setTargetKey('find__material_types', 'verre', glass) + self.set_target_key('find__material_types', 'terre-cuite', ceram) + self.set_target_key('find__material_types', 'verre', glass) impt.importation() - if not test: - return # new finds has now been imported current_nb = models.BaseFind.objects.count() self.assertEqual(current_nb, (old_nb + 4)) diff --git a/archaeological_operations/tests.py b/archaeological_operations/tests.py index f2126a68e..040c7c3d8 100644 --- a/archaeological_operations/tests.py +++ b/archaeological_operations/tests.py @@ -36,35 +36,27 @@ from archaeological_operations import views from ishtar_common.models import OrganizationType, Organization, \ ImporterType, IshtarUser, TargetKey, ImporterModel, IshtarSiteProfile, Town +from archaeological_context_records.models import Unit from ishtar_common import forms_common from ishtar_common.tests import WizardTest, WizardTestFormData as FormData, \ create_superuser, create_user -class ImportOperationTest(TestCase): - fixtures = [settings.ROOT_PATH + - '../fixtures/initial_data-auth-fr.json', - settings.ROOT_PATH + - '../ishtar_common/fixtures/initial_data-fr.json', - settings.ROOT_PATH + - '../ishtar_common/fixtures/test_towns.json', - settings.ROOT_PATH + - '../ishtar_common/fixtures/initial_importtypes-fr.json', - settings.ROOT_PATH + - '../archaeological_operations/fixtures/initial_data-fr.json'] - test_operations = True +class ImportTest(object): + def setUp(self): + self.username, self.password, self.user = create_superuser() + self.ishtar_user = IshtarUser.objects.get(pk=self.user.pk) - def setTargetKey(self, target, key, value): - tg = TargetKey.objects.get(target__target=target, key=key) + def set_target_key(self, target, key, value, imp=None): + keys = {'target__target': target, 'key': key} + if imp: + keys['associated_import'] = imp + tg = TargetKey.objects.get(**keys) tg.value = value tg.is_set = True tg.save() - def setUp(self): - self.username, self.password, self.user = create_superuser() - self.ishtar_user = IshtarUser.objects.get(pk=self.user.pk) - def init_ope_import(self): mcc_operation = ImporterType.objects.get(name=u"MCC - Opérations") mcc_operation_file = open( @@ -102,33 +94,95 @@ class ImportOperationTest(TestCase): target.is_set = True target.save() - def test_mcc_import_operation(self, test=True): - # MCC opérations - if self.test_operations is False: - test = False + def init_ope(self): + importer, form = self.init_ope_import() + impt = form.save(self.ishtar_user) + impt.initialize() + self.init_ope_targetkey(imp=impt) + impt.importation() + + def init_parcel_import(self): + self.init_ope() + mcc_parcel = ImporterType.objects.get(name=u"MCC - Parcelles") + mcc_file = open( + settings.ROOT_PATH + + '../archaeological_operations/tests/MCC-parcelles-example.csv', + 'rb') + file_dict = {'imported_file': SimpleUploadedFile(mcc_file.name, + mcc_file.read())} + post_dict = {'importer_type': mcc_parcel.pk, 'skip_lines': 1, + "encoding": 'utf-8'} + form = forms_common.NewImportForm(data=post_dict, files=file_dict) + form.is_valid() + return mcc_parcel, form + + def init_parcel(self): + importer, form = self.init_parcel_import() + impt = form.save(self.ishtar_user) + impt.initialize() + impt.importation() + + def init_context_record_import(self): + self.init_parcel() + mcc = ImporterType.objects.get(name=u"MCC - UE") + mcc_file = open( + settings.ROOT_PATH + + '../archaeological_context_records/tests/' + 'MCC-context-records-example.csv', 'rb') + file_dict = {'imported_file': SimpleUploadedFile(mcc_file.name, + mcc_file.read())} + post_dict = {'importer_type': mcc.pk, 'skip_lines': 1, + "encoding": 'utf-8'} + form = forms_common.NewImportForm(data=post_dict, files=file_dict) + form.is_valid() + return mcc, form + + def init_cr_targetkey(self, imp): + hc = Unit.objects.get(txt_idx='not_in_context').pk + self.set_target_key('unit', 'hc', hc, imp=imp) + self.set_target_key('unit', 'hors-contexte', hc, imp=imp) + layer = Unit.objects.get(txt_idx='layer').pk + self.set_target_key('unit', 'couche', layer, imp=imp) + + def init_context_record(self): + mcc, form = self.init_context_record_import() + impt = form.save(self.ishtar_user) + impt.initialize() + self.init_cr_targetkey(impt) + impt.importation() + + +class ImportOperationTest(ImportTest, TestCase): + fixtures = [settings.ROOT_PATH + + '../fixtures/initial_data-auth-fr.json', + settings.ROOT_PATH + + '../ishtar_common/fixtures/initial_data-fr.json', + settings.ROOT_PATH + + '../ishtar_common/fixtures/test_towns.json', + settings.ROOT_PATH + + '../ishtar_common/fixtures/initial_importtypes-fr.json', + settings.ROOT_PATH + + '../archaeological_operations/fixtures/initial_data-fr.json'] + + def test_mcc_import_operation(self): first_ope_nb = models.Operation.objects.count() importer, form = self.init_ope_import() - if test: - self.assertTrue(form.is_valid()) + self.assertTrue(form.is_valid()) impt = form.save(self.ishtar_user) target_key_nb = TargetKey.objects.count() impt.initialize() # new key have to be set - if test: - self.assertTrue(TargetKey.objects.count() > target_key_nb) + self.assertTrue(TargetKey.objects.count() > target_key_nb) # first try to import impt.importation() current_ope_nb = models.Operation.objects.count() # no new operation imported because of a missing connection for # operation_type value - if test: - self.assertTrue(current_ope_nb == first_ope_nb) + self.assertTrue(current_ope_nb == first_ope_nb) self.init_ope_targetkey(imp=impt) impt.importation() - if not test: - return # a new operation has now been imported current_ope_nb = models.Operation.objects.count() self.assertTrue(current_ope_nb == (first_ope_nb + 1)) @@ -195,33 +249,16 @@ class ImportOperationTest(TestCase): current_ope_nb = models.Operation.objects.count() self.assertEqual(current_ope_nb, init_ope_number + 1) - def testMCCImportParcels(self, test=True): - if self.test_operations is False: - test = False - self.test_mcc_import_operation(test=False) + def test_mcc_import_parcels(self): old_nb = models.Parcel.objects.count() - MCC_PARCEL = ImporterType.objects.get(name=u"MCC - Parcelles") - mcc_file = open( - settings.ROOT_PATH + - '../archaeological_operations/tests/MCC-parcelles-example.csv', - 'rb') - file_dict = {'imported_file': SimpleUploadedFile(mcc_file.name, - mcc_file.read())} - post_dict = {'importer_type': MCC_PARCEL.pk, 'skip_lines': 1, - "encoding": 'utf-8'} - form = forms_common.NewImportForm(data=post_dict, files=file_dict, - instance=None) - form.is_valid() - if test: - self.assertTrue(form.is_valid()) + mcc_parcel, form = self.init_parcel_import() impt = form.save(self.ishtar_user) impt.initialize() impt.importation() - if not test: - return # new parcels has now been imported current_nb = models.Parcel.objects.count() - self.assertTrue(current_nb == (old_nb + 2)) + self.assertEqual(current_nb, old_nb + 2) + # and well imported last_parcels = models.Parcel.objects.order_by('-pk').all()[0:2] external_ids = sorted(['4200-59350-YY55', '4200-75101-XXXX']) @@ -249,8 +286,6 @@ class ImportOperationTest(TestCase): self.assertEqual(parcel_count - 2, models.Parcel.objects.count()) def testParseParcels(self): - if not self.test_operations: - return # the database needs to be initialised before importing from archaeological_operations.import_from_csv import parse_parcels # default_town = Town.objects.create(numero_insee="12345", |