summaryrefslogtreecommitdiff
path: root/archaeological_finds
diff options
context:
space:
mode:
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
commitfa07d144fdf6bd89ee6d1014243aacbeb722b09c (patch)
tree8b0e6033fe85891b6bb0eef6d4665b6465996dc2 /archaeological_finds
parent2d7e9cd3d49e918f37a30352f35d1ad4c2ace769 (diff)
downloadIshtar-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.py53
-rw-r--r--archaeological_finds/views.py8
-rw-r--r--archaeological_finds/wizards.py5
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