diff options
Diffstat (limited to 'ishtar_common/tests.py')
| -rw-r--r-- | ishtar_common/tests.py | 24 | 
1 files changed, 17 insertions, 7 deletions
| diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py index 208c8d224..7bce12a4d 100644 --- a/ishtar_common/tests.py +++ b/ishtar_common/tests.py @@ -175,8 +175,8 @@ class WizardTestFormData(object):      """      Test set to simulate wizard steps      """ -    def __init__(self, name, form_datas={}, ignored=[], pre_tests=[], -                 extra_tests=[]): +    def __init__(self, name, form_datas=None, ignored=None, pre_tests=None, +                 extra_tests=None, error_expected=None):          """          :param name: explicit name of the test          :param form_datas: dict with data for each step - dict key are wizard @@ -186,12 +186,14 @@ class WizardTestFormData(object):          :param extra_tests: list of extra tests. These tests must be functions          accepting two parameters: the current test object and the final step          response +        :param error_expected: step where an error is expected          """          self.name = name -        self.form_datas = form_datas -        self.ignored = ignored[:] -        self.pre_tests = pre_tests -        self.extra_tests = extra_tests +        self.form_datas = form_datas or {} +        self.ignored = ignored[:] if ignored else [] +        self.pre_tests = pre_tests or [] +        self.extra_tests = extra_tests or [] +        self.error_expected = error_expected      def set(self, form_name, field_name, value):          """ @@ -229,6 +231,8 @@ class WizardTestFormData(object):              if suffix in form_name:                  continue              self.form_datas[form_name + suffix] = self.form_datas.pop(form_name) +        if self.error_expected and suffix not in self.error_expected: +            self.error_expected += suffix          for pre in self.pre_tests:              pre(test_object) @@ -348,7 +352,13 @@ class WizardTest(object):                  response = self.wizard_post(                      self.client, url, current_step, data,                      not next_form_is_checked) -                self.check_response(response, current_step) + +                if current_step == test_form_data.error_expected: +                    with self.assertRaises(ValidationError): +                        self.check_response(response, current_step) +                else: +                    self.check_response(response, current_step) +                  if next_form_is_checked:                      next_form = self.steps[idx + 1][0]                      self.assertRedirects( | 
