summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2019-09-14 18:29:47 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2019-09-14 18:29:47 +0200
commit5ca7407d99b07694fd5facf612f3d2c8562c000b (patch)
tree0aa879bf17c6dfab7879c85f76f15a69d2a843a8
parent26a7508ea2ae47ccbaf0e0bfc0d2bd4f64482824 (diff)
downloadIshtar-5ca7407d99b07694fd5facf612f3d2c8562c000b.tar.bz2
Ishtar-5ca7407d99b07694fd5facf612f3d2c8562c000b.zip
Fix file imports - fix tests with redirs
-rw-r--r--archaeological_context_records/tests.py2
-rw-r--r--archaeological_files/views.py12
-rw-r--r--archaeological_finds/tests.py8
-rw-r--r--archaeological_finds/wizards.py4
-rw-r--r--archaeological_operations/tests.py23
-rw-r--r--archaeological_warehouse/tests.py6
-rw-r--r--ishtar_common/tests.py23
7 files changed, 62 insertions, 16 deletions
diff --git a/archaeological_context_records/tests.py b/archaeological_context_records/tests.py
index 92f97545e..36f73884a 100644
--- a/archaeological_context_records/tests.py
+++ b/archaeological_context_records/tests.py
@@ -853,6 +853,8 @@ class ContextRecordWizardCreationTest(WizardTest, ContextRecordInit, TestCase):
url_name = 'record_creation'
wizard_name = 'record_wizard'
steps = views.record_creation_steps
+ redirect_url = "/record_modification/selec-record_modification"\
+ "?open_item={last_id}"
form_datas = [
FormData(
"Create a simple context record",
diff --git a/archaeological_files/views.py b/archaeological_files/views.py
index a23475c3e..f55dbe73c 100644
--- a/archaeological_files/views.py
+++ b/archaeological_files/views.py
@@ -23,7 +23,7 @@ import re
from django.core.urlresolvers import reverse
from django.db.models import Q
from django.http import HttpResponse, Http404, HttpResponseRedirect
-from django.shortcuts import redirect
+from django.shortcuts import redirect, render
from django.utils.translation import ugettext_lazy as _
from ishtar_common.views import wizard_is_available
@@ -31,14 +31,18 @@ from ishtar_common.views_item import get_item, show_item, revert_item
from archaeological_operations.wizards import AdministrativeActDeletionWizard, \
is_preventive, is_not_preventive
-from .wizards import *
+
+from ishtar_common.wizards import SearchWizard
+from archaeological_files.wizards import FileSearch, FileWizard, \
+ FileModificationWizard, FileClosingWizard, FileDeletionWizard, \
+ FileAdministrativeActWizard, FileEditAdministrativeActWizard
from ishtar_common.forms_common import TownFormset
from archaeological_operations.forms import FinalAdministrativeActDeleteForm
from ishtar_common.forms import ClosingDateFormSelection
-from . import forms
+from . import forms, models
-from ishtar_common.utils import put_session_message
+from archaeological_operations.models import Operation, AdministrativeAct
RE_YEAR_INDEX = re.compile(r"([1-2][0-9]{3})-([0-9]+)") # eg.: 2014-123
diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py
index 2d6b85b1a..76e6764b2 100644
--- a/archaeological_finds/tests.py
+++ b/archaeological_finds/tests.py
@@ -245,6 +245,9 @@ class FindWizardCreationTest(WizardTest, FindInit, TestCase):
url_name = 'find_creation'
wizard_name = 'find_wizard'
steps = views.find_creation_steps
+ redirect_url = "/find_modification/selec-find_modification?open_item="\
+ "{last_id}"
+ model = models.Find
form_datas = [
FormData(
'Find creation',
@@ -302,6 +305,7 @@ class FindWizardDeletionWithWarehouseModTest(WizardTest, FindInit, TestCase):
url_name = 'find_deletion'
wizard_name = 'find_deletion_wizard'
steps = views.find_deletion_steps
+ redirect_url = "/{}/selecw-{}".format(url_name, url_name)
form_datas = [
FormData(
'Find deletion',
@@ -319,7 +323,7 @@ class FindWizardDeletionWithWarehouseModTest(WizardTest, FindInit, TestCase):
profile.save()
find, bf = self.get_default_find(force=True)
- self.form_datas[0].set('selecw', 'pk', find.pk)
+ self.form_datas[0].set('selecw', 'pks', find.pk)
self.find_number = models.Find.objects.count()
super(FindWizardDeletionWithWarehouseModTest, self).pre_wizard()
@@ -333,6 +337,8 @@ class TreatmentWizardCreationTest(WizardTest, FindInit, TestCase):
url_name = 'treatment_creation'
wizard_name = 'treatment_wizard'
steps = views.treatment_wizard_steps
+ redirect_url = "/treatment_search/general-treatment_search?" \
+ "open_item={last_id}"
form_datas = [
FormData(
'Move treatment (planned)',
diff --git a/archaeological_finds/wizards.py b/archaeological_finds/wizards.py
index b34bcdcbe..71bc6deed 100644
--- a/archaeological_finds/wizards.py
+++ b/archaeological_finds/wizards.py
@@ -194,8 +194,10 @@ class TreatmentWizard(TreatmentBase):
if 'resulting_pk' in dct:
dct['items'] = []
pks = dct.pop('resulting_pk')
+ if isinstance(pks, models.Find):
+ pks = [pks]
if not isinstance(pks, (list, tuple)):
- pks = pks.split(u',')
+ pks = str(pks).split(u',')
for pk in pks:
if isinstance(pk, models.Find):
diff --git a/archaeological_operations/tests.py b/archaeological_operations/tests.py
index 6c20df85a..9466257a4 100644
--- a/archaeological_operations/tests.py
+++ b/archaeological_operations/tests.py
@@ -1681,7 +1681,7 @@ class LockTest(TestCase, OperationInitTest):
step = 'selec-operation_modification'
response = cls_wiz.wizard_post(
self.client, url, step, {'pk': self.operation.pk})
- msg = str(_("This operation is locked for edition.")
+ msg = str(_("This item is locked for edition.")
).replace("'", "&#39;")
self.assertIn(msg, response.content.decode(),
msg="wizard lock for edition not effective")
@@ -2514,6 +2514,9 @@ class OperationWizardCreationTest(WizardTest, OperationInitTest, TestCase):
url_name = 'operation_creation'
wizard_name = 'operation_wizard'
steps = views.wizard_steps
+ redirect_url = "/operation_modification/selec-operation_modification"\
+ "?open_item={last_id}"
+ model = models.Operation
form_datas = [
FormData(
@@ -2632,6 +2635,8 @@ class OperationWizardModifTest(WizardTest, OperationInitTest, TestCase):
url_name = 'operation_modification'
wizard_name = url_name + '_wizard'
steps = views.operation_modif_wizard_steps
+ redirect_url = "/{url_name}/selec-{url_name}?open_item={current_id}"
+ model = models.Operation
base_ignored_steps = (
'archaeologicalsite-operation_modification',
'preventive-operation_modification',
@@ -2826,11 +2831,12 @@ class OperationWizardDeleteTest(OperationWizardCreationTest):
url_name = 'operation_deletion'
wizard_name = 'operation_deletion_wizard'
steps = views.operation_deletion_steps
+ redirect_url = "/{}/selec-{}".format(url_name, url_name)
form_datas = [
FormData(
"Wizard deletion test",
form_datas={
- 'selec-operation_deletion': {'pk': None},
+ 'selec-operation_deletion': {'pks': None},
}
)
]
@@ -2844,7 +2850,7 @@ class OperationWizardDeleteTest(OperationWizardCreationTest):
self.ope = self.get_default_operation(force=True)
self.ope.parcels.add(self.create_parcel()[0])
self.parcel_nb = models.Parcel.objects.count()
- self.form_datas[0].form_datas['selec-operation_deletion']['pk'] = \
+ self.form_datas[0].form_datas['selec-operation_deletion']['pks'] = \
self.ope.pk
self.operation_number = models.Operation.objects.count()
super(OperationWizardDeleteTest, self).pre_wizard()
@@ -2861,6 +2867,7 @@ class OperationWizardClosingTest(OperationWizardCreationTest):
url_name = 'operation_closing'
wizard_name = 'operation_closing_wizard'
steps = views.operation_closing_steps
+ redirect_url = "/operation_closing/done"
form_datas = [
FormData(
"Wizard closing test",
@@ -3107,7 +3114,8 @@ class DocumentTest(OperationInitTest, TestCase):
response = c.post(url, posted)
self.assertEqual(nb_doc + 1, models.Document.objects.count())
self.assertEqual(nb_doc_ope + 1, self.operation.documents.count())
- self.assertRedirects(response, '/display-document/{}/'.format(
+ self.assertRedirects(
+ response, '/document/edit/?open_item={}'.format(
self.operation.documents.order_by('-pk').all()[0].pk
))
@@ -3135,7 +3143,7 @@ class DocumentTest(OperationInitTest, TestCase):
posted["operations"] = [str(self.operation.pk)]
response = c.post(url, posted)
self.assertRedirects(
- response, '/display-document/{}/'.format(doc.pk))
+ response, '/document/edit/?open_item={}'.format(doc.pk))
response = c.get('/show-document/{}/'.format(doc.pk))
self.assertIn(posted["title"], response.content.decode())
@@ -3145,12 +3153,13 @@ class DocumentWizardDeleteTest(WizardTest, OperationInitTest, TestCase):
url_name = 'document_deletion'
url_uri = "document/delete"
wizard_name = 'document_deletion_wizard'
+ redirect_url = "/{}/selec-{}".format(url_uri, url_name)
steps = document_deletion_steps
form_datas = [
FormData(
"Delete document",
form_datas={
- 'selec': {'pk': None},
+ 'selec': {'pks': None},
},
),
]
@@ -3160,7 +3169,7 @@ class DocumentWizardDeleteTest(WizardTest, OperationInitTest, TestCase):
document = Document.objects.create(title="testy")
document.operations.add(ope)
self.ope_id = ope.pk
- self.form_datas[0].set('selec', 'pk', document.pk)
+ self.form_datas[0].set('selec', 'pks', document.pk)
self.doc_nb = Document.objects.count()
super(DocumentWizardDeleteTest, self).pre_wizard()
diff --git a/archaeological_warehouse/tests.py b/archaeological_warehouse/tests.py
index 6d6dbddc9..72124e685 100644
--- a/archaeological_warehouse/tests.py
+++ b/archaeological_warehouse/tests.py
@@ -365,6 +365,9 @@ class WarehouseWizardCreationTest(WizardTest, FindInit, TestCase):
url_name = 'warehouse_creation'
wizard_name = 'warehouse_wizard'
steps = views.warehouse_creation_steps
+ 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
@@ -425,6 +428,9 @@ class ContainerWizardCreationTest(WizardTest, FindInit, TestCase):
url_name = 'container_creation'
wizard_name = 'container_wizard'
steps = views.container_creation_steps
+ redirect_url = '/container_modification/selec-container_modification'\
+ '?open_item={last_id}'
+ model = models.Container
form_datas = [
FormData(
'Container creation',
diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py
index 765d74312..8708d90bd 100644
--- a/ishtar_common/tests.py
+++ b/ishtar_common/tests.py
@@ -414,6 +414,9 @@ class WizardTest(object):
condition_dict = None
form_datas = []
test_back = True
+ redirect_url = None
+ model = None
+ current_id_key = "pk"
def setUp(self):
self.username, self.password, self.user = create_superuser()
@@ -502,9 +505,23 @@ class WizardTest(object):
)
if idx == len(self.steps) - 1:
# last form
- self.assertRedirects(
- response,
- '/{}/done'.format(self.url_uri))
+ if not self.redirect_url:
+ redirect_url = '/{}/done'.format(self.url_uri)
+ else:
+ dct = {
+ "url_name": self.url_name,
+ "url_uri": self.url_uri
+ }
+ form_key = 'selec-' + self.url_name
+ if form_key in form_data and self.current_id_key in form_data[
+ form_key]:
+ dct["current_id"] = form_data[form_key][self.current_id_key]
+ if self.model:
+ q = self.model.objects
+ if q.count():
+ dct["last_id"] = q.order_by("-pk").all()[0].pk
+ redirect_url = self.redirect_url.format(**dct)
+ self.assertRedirects(response, redirect_url)
return response
def test_wizard(self):