From b5baa640050c7576dec3419016fd8f2a9853000f Mon Sep 17 00:00:00 2001
From: Todd Dembrey <todd.dembrey@torchbox.com>
Date: Thu, 23 Aug 2018 08:07:07 +0100
Subject: [PATCH] Refactor tests for more reasonable performance

---
 opentech/apply/funds/tests/test_views.py | 74 ++++++++++--------------
 1 file changed, 31 insertions(+), 43 deletions(-)

diff --git a/opentech/apply/funds/tests/test_views.py b/opentech/apply/funds/tests/test_views.py
index 0e68c7d06..6131353fc 100644
--- a/opentech/apply/funds/tests/test_views.py
+++ b/opentech/apply/funds/tests/test_views.py
@@ -140,6 +140,12 @@ class TestStaffSubmissionView(BaseSubmissionViewTestCase):
 class TestReviewersUpdateView(BaseSubmissionViewTestCase):
     user_factory = StaffFactory
 
+    @classmethod
+    def setUpTestData(cls):
+        super().setUpTestData()
+        cls.staff = StaffFactory.create_batch(4)
+        cls.reviewers = ReviewerFactory.create_batch(4)
+
     def post_form(self, submission, staff=list(), reviewers=list()):
         return self.post_page(submission, {
             'form-submitted-reviewer_form': '',
@@ -149,82 +155,67 @@ class TestReviewersUpdateView(BaseSubmissionViewTestCase):
 
     def test_lead_can_add_staff_single(self):
         submission = ApplicationSubmissionFactory(lead=self.user)
-        staff = StaffFactory.create_batch(4)
 
-        self.post_form(submission, staff)
+        self.post_form(submission, self.staff)
 
-        self.assertCountEqual(submission.reviewers.all(), staff)
+        self.assertCountEqual(submission.reviewers.all(), self.staff)
 
     def test_lead_can_remove_staff_single(self):
-        staff = StaffFactory.create_batch(4)
-        submission = ApplicationSubmissionFactory(lead=self.user, reviewers=staff)
-        self.assertCountEqual(submission.reviewers.all(), staff)
+        submission = ApplicationSubmissionFactory(lead=self.user, reviewers=self.staff)
+        self.assertCountEqual(submission.reviewers.all(), self.staff)
 
         self.post_form(submission, [])
 
         self.assertCountEqual(submission.reviewers.all(), [])
 
     def test_lead_can_remove_some_staff(self):
-        staff = StaffFactory.create_batch(4)
-        submission = ApplicationSubmissionFactory(lead=self.user, reviewers=staff)
-        self.assertCountEqual(submission.reviewers.all(), staff)
+        submission = ApplicationSubmissionFactory(lead=self.user, reviewers=self.staff)
+        self.assertCountEqual(submission.reviewers.all(), self.staff)
 
-        self.post_form(submission, staff[0:2])
+        self.post_form(submission, self.staff[0:2])
 
-        self.assertCountEqual(submission.reviewers.all(), staff[0:2])
+        self.assertCountEqual(submission.reviewers.all(), self.staff[0:2])
 
     def test_lead_cant_add_reviewers_single(self):
         submission = ApplicationSubmissionFactory(lead=self.user)
-        reviewers = ReviewerFactory.create_batch(4)
 
-        self.post_form(submission, reviewers=reviewers)
+        self.post_form(submission, reviewers=self.reviewers)
 
         self.assertCountEqual(submission.reviewers.all(), [])
 
     def test_lead_can_add_staff_and_reviewers_for_proposal(self):
         submission = InvitedToProposalFactory(lead=self.user)
 
-        staff = StaffFactory.create_batch(4)
-        reviewers = ReviewerFactory.create_batch(4)
+        self.post_form(submission, self.staff, self.reviewers)
 
-        self.post_form(submission, staff, reviewers)
-
-        self.assertCountEqual(submission.reviewers.all(), staff + reviewers)
+        self.assertCountEqual(submission.reviewers.all(), self.staff + self.reviewers)
 
     def test_lead_can_remove_staff_and_reviewers_for_proposal(self):
-        staff = StaffFactory.create_batch(4)
-        reviewers = ReviewerFactory.create_batch(4)
-
-        submission = InvitedToProposalFactory(lead=self.user, reviewers=staff + reviewers)
-        self.assertCountEqual(submission.reviewers.all(), staff + reviewers)
+        submission = InvitedToProposalFactory(lead=self.user, reviewers=self.staff + self.reviewers)
+        self.assertCountEqual(submission.reviewers.all(), self.staff + self.reviewers)
 
         self.post_form(submission)
 
         self.assertCountEqual(submission.reviewers.all(), [])
 
     def test_lead_can_remove_some_staff_and_reviewers_for_proposal(self):
-        staff = StaffFactory.create_batch(4)
-        reviewers = ReviewerFactory.create_batch(4)
+        submission = InvitedToProposalFactory(lead=self.user, reviewers=self.staff + self.reviewers)
+        self.assertCountEqual(submission.reviewers.all(), self.staff + self.reviewers)
 
-        submission = InvitedToProposalFactory(lead=self.user, reviewers=staff + reviewers)
-        self.assertCountEqual(submission.reviewers.all(), staff + reviewers)
+        self.post_form(submission, self.staff[0:2], self.reviewers[0:2])
 
-        self.post_form(submission, staff[0:2], reviewers[0:2])
-
-        self.assertCountEqual(submission.reviewers.all(), staff[0:2] + reviewers[0:2])
+        self.assertCountEqual(submission.reviewers.all(), self.staff[0:2] + self.reviewers[0:2])
 
     def test_staff_can_add_staff_single(self):
         submission = ApplicationSubmissionFactory()
-        staff = StaffFactory.create_batch(4)
 
-        self.post_form(submission, staff)
+        self.post_form(submission, self.staff)
 
-        self.assertCountEqual(submission.reviewers.all(), staff)
+        self.assertCountEqual(submission.reviewers.all(), self.staff)
 
     def test_staff_can_remove_staff_single(self):
-        staff = StaffFactory.create_batch(4)
-        submission = ApplicationSubmissionFactory(reviewers=staff)
-        self.assertCountEqual(submission.reviewers.all(), staff)
+        submission = ApplicationSubmissionFactory(reviewers=self.staff)
+        self.assertCountEqual(submission.reviewers.all(), self.staff)
 
         self.post_form(submission, [])
 
@@ -232,21 +223,18 @@ class TestReviewersUpdateView(BaseSubmissionViewTestCase):
 
     def test_staff_cant_add_reviewers_proposal(self):
         submission = ApplicationSubmissionFactory()
-        reviewers = ReviewerFactory.create_batch(4)
 
-        self.post_form(submission, reviewers=reviewers)
+        self.post_form(submission, reviewers=self.reviewers)
 
         self.assertCountEqual(submission.reviewers.all(), [])
 
     def test_staff_cant_remove_reviewers_proposal(self):
-        reviewers = ReviewerFactory.create_batch(4)
-
-        submission = ApplicationSubmissionFactory(reviewers=reviewers)
-        self.assertCountEqual(submission.reviewers.all(), reviewers)
+        submission = ApplicationSubmissionFactory(reviewers=self.reviewers)
+        self.assertCountEqual(submission.reviewers.all(), self.reviewers)
 
         self.post_form(submission, reviewers=[])
 
-        self.assertCountEqual(submission.reviewers.all(), reviewers)
+        self.assertCountEqual(submission.reviewers.all(), self.reviewers)
 
 
 class TestApplicantSubmissionView(BaseSubmissionViewTestCase):
-- 
GitLab