diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-12-20 13:50:37 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-12-20 13:50:37 +0100 |
commit | fa07d144fdf6bd89ee6d1014243aacbeb722b09c (patch) | |
tree | 8b0e6033fe85891b6bb0eef6d4665b6465996dc2 /archaeological_finds | |
parent | 2d7e9cd3d49e918f37a30352f35d1ad4c2ace769 (diff) | |
download | Ishtar-fa07d144fdf6bd89ee6d1014243aacbeb722b09c.tar.bz2 Ishtar-fa07d144fdf6bd89ee6d1014243aacbeb722b09c.zip |
Fix find creation (refs #3399) - improve wizard test management
Diffstat (limited to 'archaeological_finds')
-rw-r--r-- | archaeological_finds/tests.py | 53 | ||||
-rw-r--r-- | archaeological_finds/views.py | 8 | ||||
-rw-r--r-- | archaeological_finds/wizards.py | 5 |
3 files changed, 62 insertions, 4 deletions
diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py index b5096ae01..4153a79ad 100644 --- a/archaeological_finds/tests.py +++ b/archaeological_finds/tests.py @@ -17,6 +17,8 @@ # See the file COPYING for details. +import datetime + from django.conf import settings from django.core.files.uploadedfile import SimpleUploadedFile from django.test import TestCase @@ -24,6 +26,7 @@ from ishtar_common.models import ImporterType, IshtarUser, ImporterColumn,\ FormaterType, ImportTarget from ishtar_common.models import Person +from archaeological_context_records.models import ContextRecord from archaeological_finds import models, views from archaeological_warehouse.models import Warehouse, WarehouseType @@ -80,6 +83,56 @@ class FindInit(ContextRecordInit): self.base_find = [] +class AFindWizardCreationTest(WizardTest, FindInit, TestCase): + # TODO: first to be run because of strange init things... + fixtures = [settings.ROOT_PATH + + '../fixtures/initial_data.json', + settings.ROOT_PATH + + '../ishtar_common/fixtures/initial_data.json', + settings.ROOT_PATH + + '../archaeological_files/fixtures/initial_data.json', + settings.ROOT_PATH + + '../archaeological_operations/fixtures/initial_data-fr.json', + settings.ROOT_PATH + + '../archaeological_finds/fixtures/initial_data-fr.json', + settings.ROOT_PATH + + '../archaeological_warehouse/fixtures/initial_data-fr.json', + ] + url_name = 'find_creation' + wizard_name = 'find_wizard' + steps = views.find_creation_steps + form_datas = [ + FormData( + 'Find creation', + form_datas={ + 'selecrecord-find_creation': {'pk': 1}, + 'find-find_creation': { + 'label': 'hop', + 'checked': 'NC', + 'check_date': '2016-01-01' + }, + 'dating-find_creation': [] + }, + ) + ] + + def pre_wizard(self): + q = ContextRecord.objects.filter(pk=1) + if not q.count(): + cr = self.create_context_record()[0] + cr.pk = 1 + cr.save() + self.find_number = models.Find.objects.count() + self.basefind_number = models.BaseFind.objects.count() + super(AFindWizardCreationTest, self).pre_wizard() + + def post_wizard(self): + self.assertEqual(models.BaseFind.objects.count(), + self.basefind_number + 1) + self.assertEqual(models.Find.objects.count(), + self.find_number + 1) + + class ATreatmentWizardCreationTest(WizardTest, FindInit, TestCase): # TODO: first to be run because of strange init things... fixtures = [settings.ROOT_PATH + diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py index 52144cadd..ef8dfb16b 100644 --- a/archaeological_finds/views.py +++ b/archaeological_finds/views.py @@ -112,11 +112,15 @@ revert_find = revert_item(models.Find) show_findbasket = show_item(models.FindBasket, 'findbasket') -find_creation_wizard = FindWizard.as_view([ +find_creation_steps = [ ('selecrecord-find_creation', RecordFormSelectionTable), ('find-find_creation', FindForm), ('dating-find_creation', DatingFormSet), - ('final-find_creation', FinalForm)], + ('final-find_creation', FinalForm) +] + +find_creation_wizard = FindWizard.as_view( + find_creation_steps, label=_(u"New find"), url_name='find_creation',) diff --git a/archaeological_finds/wizards.py b/archaeological_finds/wizards.py index c9d492329..d7e3dbac0 100644 --- a/archaeological_finds/wizards.py +++ b/archaeological_finds/wizards.py @@ -25,6 +25,7 @@ from ishtar_common.wizards import Wizard, DeletionWizard, SourceWizard from archaeological_operations.wizards import OperationAdministrativeActWizard from archaeological_operations.models import AdministrativeAct +from archaeological_context_records.models import ContextRecord import models @@ -40,7 +41,7 @@ class FindWizard(Wizard): main_form_key = 'selecrecord-' + self.url_name try: idx = int(self.session_get_value(main_form_key, 'pk')) - current_cr = models.ContextRecord.objects.get(pk=idx) + current_cr = ContextRecord.objects.get(pk=idx) return current_cr except(TypeError, ValueError, ObjectDoesNotExist): pass @@ -66,7 +67,7 @@ class FindWizard(Wizard): def get_extra_model(self, dct, form_list): dct = super(FindWizard, self).get_extra_model(dct, form_list) dct['order'] = 1 - if 'pk' in dct and type(dct['pk']) == models.ContextRecord: + if 'pk' in dct and type(dct['pk']) == ContextRecord: dct['base_finds__context_record'] = dct.pop('pk') return dct |