summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2019-03-11 14:13:39 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2019-04-24 19:41:37 +0200
commita2f0f1cade35e0f814e1188444b99ddf355152bb (patch)
tree15ce5e633f195730f61db0bdc8bb17ae16b1f598
parent7f6d854d7d3868f778fa1e43fcbed58f1613ce01 (diff)
downloadIshtar-a2f0f1cade35e0f814e1188444b99ddf355152bb.tar.bz2
Ishtar-a2f0f1cade35e0f814e1188444b99ddf355152bb.zip
Tests: test container change in treatments
-rw-r--r--archaeological_finds/tests.py153
-rw-r--r--ishtar_common/tests.py6
2 files changed, 139 insertions, 20 deletions
diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py
index 9efd6ac79..a56c997eb 100644
--- a/archaeological_finds/tests.py
+++ b/archaeological_finds/tests.py
@@ -214,14 +214,15 @@ class TreatmentWizardCreationTest(WizardTest, FindInit, TestCase):
steps = views.treatment_wizard_steps
form_datas = [
FormData(
- 'Move treament',
+ 'Move treatment (planned)',
form_datas={
'file': {},
'basetreatment': {
'treatment_type': None,
'person': 1, # doer
'location': 1, # associated warehouse
- 'year': 2016
+ 'year': 2016,
+ 'container': None,
},
'selecfind': {
'pk': 1,
@@ -230,7 +231,45 @@ class TreatmentWizardCreationTest(WizardTest, FindInit, TestCase):
},
ignored=('resultfind-treatment_creation',
'selecbasket-treatment_creation',
- 'resultfinds-treatment_creation'))
+ 'resultfinds-treatment_creation')),
+ FormData(
+ 'Move treatment (done)',
+ form_datas={
+ 'file': {},
+ 'basetreatment': {
+ 'treatment_type': None,
+ 'person': 1, # doer
+ 'location': 1, # associated warehouse
+ 'year': 2016,
+ 'container': None,
+ },
+ 'selecfind': {
+ 'pk': 1,
+ 'resulting_pk': 1
+ }
+ },
+ ignored=('resultfind-treatment_creation',
+ 'selecbasket-treatment_creation',
+ 'resultfinds-treatment_creation')),
+ FormData(
+ 'Loan treatment (done)',
+ form_datas={
+ 'file': {},
+ 'basetreatment': {
+ 'treatment_type': None,
+ 'person': 1, # doer
+ 'location': 1, # associated warehouse
+ 'year': 2016,
+ 'container': None,
+ },
+ 'selecfind': {
+ 'pk': 1,
+ 'resulting_pk': 1
+ }
+ },
+ ignored=('resultfind-treatment_creation',
+ 'selecbasket-treatment_creation',
+ 'resultfinds-treatment_creation')),
]
def pre_wizard(self):
@@ -240,38 +279,118 @@ class TreatmentWizardCreationTest(WizardTest, FindInit, TestCase):
name="default", warehouse_type=WarehouseType.objects.all()[0])
warehouse.id = 1
warehouse.save()
+ else:
+ warehouse = q.all()[0]
q = Person.objects.filter(pk=1)
if not q.count():
person = Person.objects.create(name="default")
person.id = 1
person.save()
- trt_type = models.TreatmentType.objects.get(txt_idx='moving')
- self.form_datas[0].set('basetreatment', 'treatment_type', trt_type.pk)
+ self.container_ref = Container.objects.create(
+ location=warehouse,
+ responsible=warehouse,
+ container_type=ContainerType.objects.all()[0]
+ )
+
+ self.container1 = Container.objects.create(
+ location=warehouse,
+ responsible=warehouse,
+ container_type=ContainerType.objects.all()[0]
+ )
+
+ self.container2 = Container.objects.create(
+ location=warehouse,
+ responsible=warehouse,
+ container_type=ContainerType.objects.all()[0]
+ )
+
+ self.find, base_find = self.get_default_find(force=True)
+ self.find.container_ref = self.container_ref
+ self.find.container = self.container_ref
+ self.find.save()
+ for idx in (0, 1):
+ self.form_datas[idx].form_datas['selecfind']["pk"] = self.find.pk
+ self.form_datas[idx].form_datas['selecfind']["resulting_pk"] = \
+ self.find.pk
+ self.form_datas[idx].set('basetreatment', 'container',
+ self.container1.pk)
+
+ self.find_2, base_find = self.get_default_find(force=True)
+ self.find_2.container_ref = self.container_ref
+ self.find_2.container = self.container_ref
+ self.find_2.save()
+ self.form_datas[2].form_datas['selecfind']["pk"] = self.find_2.pk
+ self.form_datas[2].form_datas['selecfind']["resulting_pk"] = \
+ self.find_2.pk
+ self.form_datas[2].set('basetreatment', 'container', self.container2.pk)
+
+ moving = models.TreatmentType.objects.get(txt_idx='moving')
+ moving.change_reference_location = True
+ moving.change_current_location = True
+ moving.save()
+ self.form_datas[0].set('basetreatment', 'treatment_type',
+ moving.pk)
+ self.form_datas[1].set('basetreatment', 'treatment_type',
+ moving.pk)
+ loan = models.TreatmentType.objects.get(txt_idx='loan')
+ loan.change_reference_location = False
+ loan.change_current_location = True
+ loan.save()
+ self.form_datas[2].set('basetreatment', 'treatment_type',
+ loan.pk)
+
+ planned, __ = models.TreatmentState.objects.get_or_create(
+ txt_idx='planned', defaults={"executed": False, "label": u"Planned"}
+ )
+ planned.executed = False
+ planned.save()
+ self.form_datas[0].set('basetreatment', 'treatment_state', planned.pk)
+
completed, created = models.TreatmentState.objects.get_or_create(
txt_idx='completed', defaults={"executed": True, "label": u"Done"}
)
completed.executed = True
completed.save()
+ self.form_datas[1].set('basetreatment', 'treatment_state', completed.pk)
+ self.form_datas[2].set('basetreatment', 'treatment_state', completed.pk)
- self.form_datas[0].set('basetreatment', 'treatment_state', completed.pk)
-
- self.find, base_find = self.get_default_find(force=True)
- self.form_datas[0].form_datas['selecfind'][
- 'pk'] = self.find.pk
- self.form_datas[0].form_datas['selecfind'][
- 'resulting_pk'] = self.find.pk
self.treatment_number = models.Treatment.objects.count()
+
+ def post_first_wizard(test_object, final_step_response):
+ # treatment planned - no changes
+ find = models.Find.objects.get(pk=test_object.find.pk)
+ test_object.assertEqual(find.container, test_object.container_ref)
+ test_object.assertEqual(find.container_ref,
+ test_object.container_ref)
+ self.form_datas[0].extra_tests = [post_first_wizard]
+
+ def post_second_wizard(test_object, final_step_response):
+ # moving done
+ find = models.Find.objects.get(pk=test_object.find.pk)
+ test_object.assertEqual(find.container, test_object.container1)
+ test_object.assertEqual(find.container_ref, test_object.container1)
+ self.form_datas[1].extra_tests = [post_second_wizard]
+
+ def post_third_wizard(test_object, final_step_response):
+ # loan done
+ find = models.Find.objects.get(pk=test_object.find_2.pk)
+ test_object.assertEqual(find.container_ref,
+ test_object.container_ref)
+ test_object.assertEqual(find.container, test_object.container2)
+ self.form_datas[2].extra_tests = [post_third_wizard]
+
super(TreatmentWizardCreationTest, self).pre_wizard()
def post_wizard(self):
self.assertEqual(models.Treatment.objects.count(),
- self.treatment_number + 1)
- treat = models.Treatment.objects.order_by('-pk').all()[0]
+ self.treatment_number + 3)
self.find = models.Find.objects.get(pk=self.find.pk)
- self.assertEqual(models.Find.objects.filter(
- treatments=treat).count(), 1)
+ self.assertEqual(self.find.treatments.count(), 2)
+ self.find_2 = models.Find.objects.get(pk=self.find_2.pk)
+ self.assertEqual(self.find_2.treatments.count(), 1)
# TODO: test treatment with new find creation
+ # treat = models.Treatment.objects.order_by('-pk').all()[0]
# self.assertEqual(self.find.downstream_treatment,
# treat)
@@ -429,7 +548,7 @@ class FindTest(FindInit, TestCase):
profile = get_current_profile()
profile.find_index = u"O"
profile.save()
- profile = get_current_profile(force=True)
+ get_current_profile(force=True)
op1 = self.create_operation()[-1]
op2 = self.create_operation()[-1]
diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py
index 53db0baae..3e9181f30 100644
--- a/ishtar_common/tests.py
+++ b/ishtar_common/tests.py
@@ -424,9 +424,9 @@ class WizardTest(object):
self.assertRedirects(
response,
'/{}/{}'.format(self.url_name, next_form),
- msg_prefix="Redirection to {} has failed - "
- "Error on previous form ({})?".format(
- next_form, current_step)
+ msg_prefix="Dataset n{} Redirection to {} has failed -"
+ " Error on previous form ({})?".format(
+ data_idx + 1, next_form, current_step)
)
if idx == len(self.steps) - 1:
# last form