diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-07-04 15:03:04 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-07-04 15:03:04 +0200 |
commit | 3e3a3c7147310980874307a96db500af677a4377 (patch) | |
tree | d0a09ef3861b093b055c73b9cad30f8bf2be5b06 /ishtar_common/tests.py | |
parent | 702a86149aea69ab4c7628e0f51144e38404771d (diff) | |
download | Ishtar-3e3a3c7147310980874307a96db500af677a4377.tar.bz2 Ishtar-3e3a3c7147310980874307a96db500af677a4377.zip |
Test wizard
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') |