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)
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>")
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)
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')
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)
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")
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)
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()
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)
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)
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')
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')
def test_cant_access_wrong_status(self): submission = ApplicationSubmissionFactory(rejected=True) response = self.get_page(submission, 'form') self.assertEqual(response.status_code, 403)
def setUpTestData(cls): super().setUpTestData() cls.submission = ApplicationSubmissionFactory(status='internal_review')
def test_cant_access_form(self): submission = ApplicationSubmissionFactory(status='internal_review') response = self.get_page(submission, 'form') self.assertEqual(response.status_code, 403)
def test_can_access_other_review(self): submission = ApplicationSubmissionFactory() review = ReviewFactory(submission=submission) response = self.get_page(review) self.assertEqual(response.status_code, 200)
def setUpTestData(cls): super().setUpTestData() cls.submission = ApplicationSubmissionFactory(status='draft_proposal', workflow_stages=2)