summaryrefslogtreecommitdiff
path: root/ishtar_common/tests.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2016-07-16 13:03:27 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2016-07-16 13:03:27 +0200
commit6bb7d4cbf47c61fd168998a0423a31814eaa7fe0 (patch)
treef0b7c63834d4fe9125d043893dad8765975a78b1 /ishtar_common/tests.py
parent3748baac6501db293424d1ae5d092e8672a68f7f (diff)
parent242c13fdc9895abdcd1af79bce2a9b3f98f3f939 (diff)
downloadIshtar-6bb7d4cbf47c61fd168998a0423a31814eaa7fe0.tar.bz2
Ishtar-6bb7d4cbf47c61fd168998a0423a31814eaa7fe0.zip
Merge branch 'master-WIP-treatments'
Diffstat (limited to 'ishtar_common/tests.py')
-rw-r--r--ishtar_common/tests.py69
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')