Skip to content

Commit d61c7ab

Browse files
committed
Add tests for admin
1 parent ae95e07 commit d61c7ab

File tree

3 files changed

+66
-1
lines changed

3 files changed

+66
-1
lines changed

experiments/utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,5 @@ def get_user_id(request):
1010
def percentage(fraction, population):
1111
try:
1212
return float(fraction) / float(population) * 100
13-
except (ValueError, ZeroDivisionError):
13+
except (ValueError, ZeroDivisionError, TypeError):
1414
return 0.0

tests/settings.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222

2323
ROOT_URLCONF = 'tests.urls'
2424

25+
STATIC_URL = '/static/'
26+
2527
STATICFILES_FINDERS = (
2628
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
2729
)
@@ -97,3 +99,5 @@
9799
PASSWORD_HASHERS = (
98100
'django.contrib.auth.hashers.MD5PasswordHasher', # don't use the intentionally slow default password hasher
99101
)
102+
103+
WAGTAIL_SITE_NAME = 'wagtail-experiments test'

tests/tests.py

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
from __future__ import absolute_import, unicode_literals
22

3+
from django.contrib.auth.models import User
4+
from django.core.urlresolvers import reverse
35
from django.test import TestCase
46
from wagtail.wagtailcore.models import Page
57

@@ -239,3 +241,62 @@ def test_completed_status(self):
239241

240242
self.assertEqual(response.status_code, 200)
241243
self.assertContains(response, "<p>Oh, it&#39;s you. What do you want?</p>")
244+
245+
246+
class TestAdmin(TestCase):
247+
fixtures = ['test.json']
248+
249+
def setUp(self):
250+
User.objects.create_superuser(username='admin', email='[email protected]', password='password')
251+
self.assertTrue(
252+
self.client.login(username='admin', password='password')
253+
)
254+
self.experiment = Experiment.objects.get(slug='homepage-text')
255+
self.homepage_alternative_1 = Page.objects.get(url_path='/home/home-alternative-1/')
256+
257+
def test_experiments_menu_item(self):
258+
response = self.client.get(reverse('wagtailadmin_home'))
259+
self.assertEqual(response.status_code, 200)
260+
self.assertContains(response, 'href="/admin/experiments/experiment/"')
261+
262+
def test_experiments_index(self):
263+
response = self.client.get('/admin/experiments/experiment/')
264+
self.assertEqual(response.status_code, 200)
265+
self.assertContains(response, 'Homepage text')
266+
267+
def test_experiment_edit(self):
268+
response = self.client.get('/admin/experiments/experiment/edit/%d/' % self.experiment.pk)
269+
self.assertEqual(response.status_code, 200)
270+
271+
def test_experiment_delete(self):
272+
response = self.client.get('/admin/experiments/experiment/delete/%d/' % self.experiment.pk)
273+
self.assertEqual(response.status_code, 200)
274+
self.assertContains(response, "Are you sure you want to delete this experiment?")
275+
276+
response = self.client.post('/admin/experiments/experiment/delete/%d/' % self.experiment.pk)
277+
self.assertRedirects(response, '/admin/experiments/experiment/')
278+
self.assertFalse(Experiment.objects.filter(slug='homepage-text').exists())
279+
280+
def test_show_report(self):
281+
response = self.client.get('/admin/experiments/experiment/report/%d/' % self.experiment.pk)
282+
self.assertEqual(response.status_code, 200)
283+
284+
def test_select_winner(self):
285+
response = self.client.post(
286+
'/admin/experiments/experiment/select_winner/%d/%d/' % (
287+
self.experiment.pk, self.homepage_alternative_1.pk
288+
)
289+
)
290+
self.assertRedirects(
291+
response,
292+
'/admin/experiments/experiment/report/%d/' % self.experiment.pk
293+
)
294+
experiment = Experiment.objects.get(pk=self.experiment.pk)
295+
self.assertEqual(experiment.status, 'completed')
296+
self.assertEqual(experiment.winning_variation, self.homepage_alternative_1)
297+
298+
def test_preview(self):
299+
response = self.client.get(
300+
'/admin/experiments/experiment/report/preview/%d/' % self.homepage_alternative_1.pk
301+
)
302+
self.assertEqual(response.status_code, 200)

0 commit comments

Comments
 (0)