from django.test import TestCase from django.urls import reverse from opentech.apply.users.tests.factories import SuperUserFactory from opentech.apply.home.factories import ApplyHomePageFactory from .test_admin_form import form_data class TestFundCreationView(TestCase): @classmethod def setUpTestData(cls): cls.user = SuperUserFactory() cls.home = ApplyHomePageFactory() def create_page(self, forms=1, same_forms=False): self.client.force_login(self.user) url = reverse('wagtailadmin_pages:add', args=('funds', 'fundtype', self.home.id)) data = form_data(forms, same_forms=same_forms, stages=forms) data['action-publish'] = True response = self.client.post(url, data=data, secure=True, follow=True) self.assertContains(response, 'success') self.home.refresh_from_db() fund = self.home.get_children().first() return fund.specific def test_can_create_fund(self): fund = self.create_page() self.assertEqual(fund.forms.count(), 1) self.assertEqual(fund.review_forms.count(), 1) def test_can_create_multi_phase_fund(self): fund = self.create_page(2) self.assertEqual(fund.forms.count(), 2) self.assertEqual(fund.review_forms.count(), 2) def test_can_create_multi_phase_fund_reuse_forms(self): fund = self.create_page(2, same_forms=True) self.assertEqual(fund.forms.count(), 2) self.assertEqual(fund.review_forms.count(), 2)