Ejemplo n.º 1
0
 def test_review_detail_visibility_reviewer(self):
     submission = ApplicationSubmissionFactory(status='external_review',
                                               workflow_stages=2)
     review = ReviewFactory(submission=submission,
                            author__reviewer=self.user,
                            visibility_reviewer=True)
     self.client.force_login(self.user_factory())
     response = self.get_page(review)
     self.assertEqual(response.status_code, 200)
Ejemplo n.º 2
0
 def test_review_detail_recommendation(self):
     submission = ApplicationSubmissionFactory(status='draft_proposal',
                                               workflow_stages=2)
     review = ReviewFactory(submission=submission,
                            author__reviewer=self.user,
                            recommendation_yes=True)
     response = self.get_page(review)
     self.assertContains(response, submission.title)
     self.assertContains(response, "<p>Yes</p>")
Ejemplo n.º 3
0
 def test_draft_reviews_dont_appear(self):
     submission = ApplicationSubmissionFactory()
     review = ReviewFactory.create(submission=submission, is_draft=True)
     response = self.get_page(submission, 'list')
     self.assertContains(response, submission.title)
     self.assertContains(
         response,
         reverse('funds:submissions:detail', kwargs={'pk': submission.id}))
     self.assertNotContains(response, review.author.reviewer.full_name)
Ejemplo n.º 4
0
    def test_submission_did_not_transition(self):
        submission = ApplicationSubmissionFactory(
            status='proposal_internal_review', workflow_stages=2)
        self.client.force_login(self.user_factory())
        fields = get_fields_for_stage(submission)
        data = ReviewFormFieldsFactory.form_response(fields)

        self.post_page(submission, data, 'form')
        submission = ApplicationSubmission.objects.get(id=submission.id)
        self.assertEqual(submission.status, 'proposal_internal_review')
Ejemplo n.º 5
0
 def test_can_access_review_listing(self):
     submission = ApplicationSubmissionFactory()
     reviews = ReviewFactory.create_batch(3, submission=submission)
     response = self.get_page(submission, 'list')
     self.assertContains(response, submission.title)
     self.assertContains(
         response,
         reverse('funds:submissions:detail', kwargs={'pk': submission.id}))
     for review in reviews:
         self.assertContains(response, review.author.reviewer.full_name)
Ejemplo n.º 6
0
 def test_review_detail_opinion(self):
     staff = StaffFactory()
     submission = ApplicationSubmissionFactory(status='draft_proposal',
                                               workflow_stages=2)
     review = ReviewFactory(submission=submission,
                            author__reviewer=self.user,
                            recommendation_yes=True)
     ReviewOpinionFactory(review=review,
                          author__reviewer=staff,
                          opinion_disagree=True)
     response = self.get_page(review)
     self.assertContains(response, "Disagrees")
Ejemplo n.º 7
0
    def test_initial_state_transition_to_internal_review(self):
        submission = ApplicationSubmissionFactory(status=INITIAL_STATE)
        submission_stepped_phases = submission.workflow.stepped_phases
        form = submission.round.review_forms.first()

        data = ReviewFormFieldsFactory.form_response(form.fields)

        self.post_page(submission, data, 'form')

        submission = ApplicationSubmission.objects.get(id=submission.id)
        self.assertEqual(submission.status,
                         submission_stepped_phases[2][0].name)
Ejemplo n.º 8
0
 def setUp(self):
     ScreeningStatus.objects.all().delete()
     self.yes_screening_status = baker.make('funds.ScreeningStatus',
                                            yes=True)
     self.yes_default_screening_status = baker.make('funds.ScreeningStatus',
                                                    yes=True,
                                                    default=True)
     self.no_screening_status = baker.make('funds.ScreeningStatus',
                                           yes=False)
     self.no_default_screening_status = baker.make('funds.ScreeningStatus',
                                                   yes=False,
                                                   default=True)
     self.submission = ApplicationSubmissionFactory()
Ejemplo n.º 9
0
    def test_internal_review_to_ready_for_discussion(self):
        submission = ApplicationSubmissionFactory(status='internal_review')
        submission_stepped_phases = submission.workflow.stepped_phases
        ReviewFactory(submission=submission,
                      author__reviewer=self.user,
                      visibility_private=True)

        self.client.force_login(self.user_factory())
        fields = get_fields_for_stage(submission)
        data = ReviewFormFieldsFactory.form_response(fields)

        self.post_page(submission, data, 'form')
        submission = ApplicationSubmission.objects.get(id=submission.id)
        self.assertEqual(submission.status,
                         submission_stepped_phases[3][0].name)
Ejemplo n.º 10
0
 def test_review_list_opinion(self):
     staff = StaffFactory()
     submission = ApplicationSubmissionFactory(status='draft_proposal',
                                               workflow_stages=2)
     review = ReviewFactory(submission=submission,
                            author__reviewer=self.user,
                            recommendation_yes=True)
     ReviewOpinionFactory(review=review,
                          author__reviewer=staff,
                          opinion_disagree=True)
     response = self.get_page(review)
     response_opinion = response.context['review_data']['opinions'][
         'answers'][0]
     self.assertIn("Disagrees", response_opinion)
     self.assertIn(str(staff), response_opinion)
Ejemplo n.º 11
0
 def test_com_external_review_to_ready_for_discussion(self):
     submission = ApplicationSubmissionFactory(status='com_external_review',
                                               workflow_name='single_com')
     reviewers = ReviewerFactory.create_batch(2)
     AssignedReviewersFactory(submission=submission, reviewer=reviewers[0])
     AssignedReviewersFactory(submission=submission, reviewer=reviewers[1])
     ReviewFactory(submission=submission,
                   author__reviewer=reviewers[0],
                   visibility_private=True)
     form = submission.round.review_forms.first()
     self.client.force_login(reviewers[1])
     data = ReviewFormFieldsFactory.form_response(form.fields)
     self.post_page(submission, data, 'form')
     submission = ApplicationSubmission.objects.get(id=submission.id)
     self.assertEqual(submission.status,
                      'com_post_external_review_discussion')
Ejemplo n.º 12
0
    def test_external_review_to_ready_for_discussion(self):
        submission = ApplicationSubmissionFactory(status='external_review',
                                                  workflow_stages=2)
        reviewers = ReviewerFactory.create_batch(2)
        AssignedReviewersFactory(submission=submission, reviewer=reviewers[0])
        AssignedReviewersFactory(submission=submission, reviewer=reviewers[1])
        ReviewFactory(submission=submission,
                      author__reviewer=reviewers[0],
                      visibility_private=True)

        self.client.force_login(reviewers[1])
        fields = get_fields_for_stage(submission)
        data = ReviewFormFieldsFactory.form_response(fields)

        self.post_page(submission, data, 'form')
        submission = ApplicationSubmission.objects.get(id=submission.id)
        self.assertEqual(submission.status, 'post_external_review_discussion')
Ejemplo n.º 13
0
 def test_cant_access_wrong_status(self):
     submission = ApplicationSubmissionFactory(rejected=True)
     response = self.get_page(submission, 'form')
     self.assertEqual(response.status_code, 403)
Ejemplo n.º 14
0
 def setUpTestData(cls):
     super().setUpTestData()
     cls.submission = ApplicationSubmissionFactory(status='internal_review')
Ejemplo n.º 15
0
 def test_cant_access_form(self):
     submission = ApplicationSubmissionFactory(status='internal_review')
     response = self.get_page(submission, 'form')
     self.assertEqual(response.status_code, 403)
Ejemplo n.º 16
0
 def test_can_access_other_review(self):
     submission = ApplicationSubmissionFactory()
     review = ReviewFactory(submission=submission)
     response = self.get_page(review)
     self.assertEqual(response.status_code, 200)
Ejemplo n.º 17
0
 def setUpTestData(cls):
     super().setUpTestData()
     cls.submission = ApplicationSubmissionFactory(status='draft_proposal',
                                                   workflow_stages=2)