diff options
Diffstat (limited to 'ishtar_common/tests.py')
| -rw-r--r-- | ishtar_common/tests.py | 69 | 
1 files changed, 69 insertions, 0 deletions
| diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py index 82ab009e0..63bf73eb7 100644 --- a/ishtar_common/tests.py +++ b/ishtar_common/tests.py @@ -54,6 +54,75 @@ class OOOGenerationTest(TestCase):  """ +def create_superuser(): +    username = 'username4277' +    password = 'dcbqj756456!@%' +    user = User.objects.create_superuser(username, "nomail@nomail.com", +                                         password) +    return username, password, user + + +def create_user(): +    username = 'username678' +    password = 'dcbqj756456!@%' +    user = User.objects.create_user(username, email="nomail2@nomail.com") +    user.set_password(password) +    user.save() +    return username, password, user + + +class WizardTest(object): +    url = None +    wizard_name = '' +    steps = None +    condition_dict = None +    form_datas = [] + +    def setUp(self): +        self.username, self.password, self.user = create_superuser() + +    def pre_wizard(self): +        self.client.login(**{'username': self.username, +                             'password': self.password}) + +    def post_wizard(self): +        pass + +    def test_wizard(self): +        url = reverse(self.url_name) +        self.pre_wizard() +        for form_data, ignored in self.form_datas: +            for idx, step in enumerate(self.steps): +                current_step, current_form = step +                if current_step in ignored: +                    continue +                data = { +                    '{}{}-current_step'.format(self.url_name, +                                               self.wizard_name): +                    [current_step], +                } +                if current_step in form_data: +                    d = form_data[current_step] +                    for k in d: +                        data['{}-{}'.format(current_step, k)] = d[k] + +                next_idx, next_form = idx + 1, None +                while len(self.steps) > next_idx: +                    if self.steps[idx + 1][0] not in ignored: +                        next_form = self.steps[idx + 1][0] +                        break +                    next_idx = next_idx + 1 + +                if next_form: +                    response = self.client.post(url, data) +                    self.assertRedirects( +                        response, +                        '/{}/{}'.format(self.url_name, next_form)) +                else: +                    response = self.client.post(url, data, follow=True) +        self.post_wizard() + +  class MergeTest(TestCase):      def setUp(self):          self.user, created = User.objects.get_or_create(username='username') | 
