Skip to content

Commit 1a7fdb0

Browse files
committed
Add tests for create experiment view and POST to edit experiment view
1 parent f652e7d commit 1a7fdb0

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

tests/tests.py

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,37 @@ def setUp(self):
252252
self.client.login(username='admin', password='password')
253253
)
254254
self.experiment = Experiment.objects.get(slug='homepage-text')
255+
self.homepage = Page.objects.get(url_path='/home/')
255256
self.homepage_alternative_1 = Page.objects.get(url_path='/home/home-alternative-1/')
257+
self.homepage_alternative_2 = Page.objects.get(url_path='/home/home-alternative-2/')
258+
259+
def get_edit_postdata(self, **kwargs):
260+
alternatives = self.experiment.alternatives.all()
261+
262+
postdata = {
263+
'name': self.experiment.name,
264+
'slug': self.experiment.slug,
265+
'control_page': self.experiment.control_page.pk,
266+
'alternatives-TOTAL_FORMS': 2,
267+
'alternatives-INITIAL_FORMS': 2,
268+
'alternatives-MIN_NUM_FORMS': 0,
269+
'alternatives-MAX_NUM_FORMS': 1000,
270+
271+
'alternatives-0-page': alternatives[0].page.pk,
272+
'alternatives-0-id': alternatives[0].pk,
273+
'alternatives-0-ORDER': '1',
274+
'alternatives-0-DELETE': '',
275+
276+
'alternatives-1-page': alternatives[1].page.pk,
277+
'alternatives-1-id': alternatives[1].pk,
278+
'alternatives-1-ORDER': '2',
279+
'alternatives-1-DELETE': '',
280+
281+
'goal': self.experiment.goal.pk,
282+
'status': self.experiment.status,
283+
}
284+
postdata.update(kwargs)
285+
return postdata
256286

257287
def test_experiments_menu_item(self):
258288
response = self.client.get(reverse('wagtailadmin_home'))
@@ -264,10 +294,40 @@ def test_experiments_index(self):
264294
self.assertEqual(response.status_code, 200)
265295
self.assertContains(response, 'Homepage text')
266296

297+
def test_experiment_new(self):
298+
response = self.client.get('/admin/experiments/experiment/create/')
299+
self.assertEqual(response.status_code, 200)
300+
301+
response = self.client.post('/admin/experiments/experiment/create/', {
302+
'name': "Another experiment",
303+
'slug': 'another-experiment',
304+
'control_page': self.homepage_alternative_1.pk,
305+
'alternatives-TOTAL_FORMS': 1,
306+
'alternatives-INITIAL_FORMS': 0,
307+
'alternatives-MIN_NUM_FORMS': 0,
308+
'alternatives-MAX_NUM_FORMS': 1000,
309+
'alternatives-0-page': self.homepage_alternative_2.pk,
310+
'alternatives-0-id': '',
311+
'alternatives-0-ORDER': '1',
312+
'alternatives-0-DELETE': '',
313+
'goal': self.homepage.pk,
314+
'status': 'draft',
315+
})
316+
self.assertRedirects(response, '/admin/experiments/experiment/')
317+
self.assertTrue(Experiment.objects.filter(slug='another-experiment').exists())
318+
267319
def test_experiment_edit(self):
268320
response = self.client.get('/admin/experiments/experiment/edit/%d/' % self.experiment.pk)
269321
self.assertEqual(response.status_code, 200)
270322

323+
response = self.client.post(
324+
'/admin/experiments/experiment/edit/%d/' % self.experiment.pk,
325+
self.get_edit_postdata(name="Homepage text updated")
326+
)
327+
self.assertRedirects(response, '/admin/experiments/experiment/')
328+
experiment = Experiment.objects.get(pk=self.experiment.pk)
329+
self.assertEqual(experiment.name, "Homepage text updated")
330+
271331
def test_experiment_delete(self):
272332
response = self.client.get('/admin/experiments/experiment/delete/%d/' % self.experiment.pk)
273333
self.assertEqual(response.status_code, 200)

0 commit comments

Comments
 (0)