Skip to content

Commit

Permalink
GH-717: Update test suite for new field stage in application, lab forms
Browse files Browse the repository at this point in the history
  • Loading branch information
Parbhat committed Aug 7, 2019
1 parent e4e3be2 commit e34d9f4
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 10 deletions.
9 changes: 6 additions & 3 deletions opentech/apply/funds/tests/factories/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,10 +90,11 @@ def parent(self, create, extracted_parent, **parent_kwargs):
@factory.post_generation
def forms(self, create, extracted, **kwargs):
if create:
for _ in self.workflow.stages:
for index, _ in enumerate(self.workflow.stages, 1):
# Generate a form based on all defined fields on the model
ApplicationBaseFormFactory(
application=self,
stage=index,
**kwargs,
)
ApplicationBaseReviewForm(
Expand Down Expand Up @@ -160,10 +161,11 @@ def parent(self, create, extracted_parent, **parent_kwargs):
@factory.post_generation
def forms(self, create, extracted, **kwargs):
if create:
for _ in self.workflow.stages:
for index, _ in enumerate(self.workflow.stages, 1):
# Generate a form based on all defined fields on the model
RoundBaseFormFactory(
round=self,
stage=index,
**kwargs,
)
RoundBaseReviewFormFactory(
Expand Down Expand Up @@ -197,10 +199,11 @@ class Meta:
@factory.post_generation
def forms(self, create, extracted, **kwargs):
if create:
for _ in self.workflow.stages:
for index, _ in enumerate(self.workflow.stages, 1):
# Generate a form based on all defined fields on the model
LabBaseFormFactory(
lab=self,
stage=index,
**kwargs,
)
LabBaseReviewFormFactory(
Expand Down
8 changes: 5 additions & 3 deletions opentech/apply/funds/tests/test_admin_form.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,11 @@ def formset_base(field, total, delete, factory, same=False, form_stage_info=None
return base_data


def form_data(number_application_forms=0, number_review_forms=0, delete=0, stages=1, same_forms=False, form_stage_info=[1]):
form_data = formset_base('forms', number_application_forms, delete, same=same_forms, factory=ApplicationFormFactory, form_stage_info=form_stage_info)
review_form_data = formset_base('review_forms', number_review_forms, False, same=same_forms, factory=ReviewFormFactory)
def form_data(num_appl_forms=0, num_review_forms=0, delete=0, stages=1, same_forms=False, form_stage_info=[1]):
form_data = formset_base(
'forms', num_appl_forms, delete, same=same_forms, factory=ApplicationFormFactory,
form_stage_info=form_stage_info)
review_form_data = formset_base('review_forms', num_review_forms, False, same=same_forms, factory=ReviewFormFactory)
form_data.update(review_form_data)

fund_data = factory.build(dict, FACTORY_CLASS=FundTypeFactory)
Expand Down
14 changes: 10 additions & 4 deletions opentech/apply/funds/tests/test_admin_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,12 @@ def setUpTestData(cls):
cls.user = SuperUserFactory()
cls.home = ApplyHomePageFactory()

def create_page(self, forms=1, same_forms=False):
def create_page(self, appl_forms=1, review_forms=1, stages=1, same_forms=False, form_stage_info=[1]):
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 = form_data(
appl_forms, review_forms, same_forms=same_forms, stages=stages, form_stage_info=form_stage_info)
data['action-publish'] = True

response = self.client.post(url, data=data, secure=True, follow=True)
Expand All @@ -38,12 +39,17 @@ def test_can_create_fund(self):
self.assertEqual(fund.review_forms.count(), 1)

def test_can_create_multi_phase_fund(self):
fund = self.create_page(2)
fund = self.create_page(2, 2, stages=2, form_stage_info=[1, 2])
self.assertEqual(fund.forms.count(), 2)
self.assertEqual(fund.review_forms.count(), 2)

def test_can_create_multiple_forms_second_stage_in_fund(self):
fund = self.create_page(4, 2, stages=2, form_stage_info=[1, 2, 2, 2])
self.assertEqual(fund.forms.count(), 4)
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)
fund = self.create_page(2, 2, same_forms=True, stages=2, form_stage_info=[1, 2])
self.assertEqual(fund.forms.count(), 2)
self.assertEqual(fund.review_forms.count(), 2)

Expand Down

0 comments on commit e34d9f4

Please sign in to comment.