From c871b44f57193fb1ac3d51c70f7f0e4137086dc7 Mon Sep 17 00:00:00 2001 From: Erin Mullaney <erin.mullaney@torchbox.com> Date: Thu, 21 Feb 2019 07:17:34 -0500 Subject: [PATCH] #962 opinion data test for all reviews list page (for a submission) and test for review detail --- .../apply/review/tests/factories/models.py | 19 ++++++++++-- opentech/apply/review/tests/test_views.py | 29 ++++++++++++++++++- 2 files changed, 44 insertions(+), 4 deletions(-) diff --git a/opentech/apply/review/tests/factories/models.py b/opentech/apply/review/tests/factories/models.py index 2d59912a3..a6d825394 100644 --- a/opentech/apply/review/tests/factories/models.py +++ b/opentech/apply/review/tests/factories/models.py @@ -4,12 +4,12 @@ from opentech.apply.funds.tests.factories import ApplicationSubmissionFactory from opentech.apply.stream_forms.testing.factories import FormDataFactory from opentech.apply.users.tests.factories import StaffFactory -from ...options import YES, NO, MAYBE -from ...models import Review, ReviewForm +from ...options import YES, NO, MAYBE, AGREE, DISAGREE +from ...models import Review, ReviewForm, ReviewOpinion from . import blocks -__all__ = ['ReviewFactory', 'ReviewFormFactory'] +__all__ = ['ReviewFactory', 'ReviewFormFactory', 'ReviewOpinionFactory'] class ReviewFormDataFactory(FormDataFactory): @@ -38,6 +38,19 @@ class ReviewFactory(factory.DjangoModelFactory): score = 0 +class ReviewOpinionFactory(factory.DjangoModelFactory): + class Meta: + model = ReviewOpinion + + class Params: + opinion_agree = factory.Trait(opinion=AGREE) + opinion_disagree = factory.Trait(opinion=DISAGREE) + + review = factory.SubFactory(ReviewFactory) + author = factory.SubFactory(StaffFactory) + opinion = DISAGREE + + class ReviewFormFactory(factory.DjangoModelFactory): class Meta: model = ReviewForm diff --git a/opentech/apply/review/tests/test_views.py b/opentech/apply/review/tests/test_views.py index d58724ff3..88114bd58 100644 --- a/opentech/apply/review/tests/test_views.py +++ b/opentech/apply/review/tests/test_views.py @@ -5,7 +5,7 @@ from opentech.apply.funds.tests.factories.models import ApplicationSubmissionFac from opentech.apply.users.tests.factories import StaffFactory, UserFactory from opentech.apply.utils.testing.tests import BaseViewTestCase -from .factories import ReviewFactory, ReviewFormFieldsFactory, ReviewFormFactory +from .factories import ReviewFactory, ReviewFormFieldsFactory, ReviewFormFactory, ReviewOpinionFactory from ..models import Review, ReviewOpinion from ..options import NA, AGREE @@ -208,6 +208,33 @@ class ReviewDetailTestCase(BaseViewTestCase): self.assertContains(response, submission.title) self.assertContains(response, "<p>Yes</p>") + def test_review_detail_opinion(self): + staff = StaffFactory() + submission = ApplicationSubmissionFactory(status='draft_proposal', workflow_stages=2) + review = ReviewFactory(submission=submission, author=self.user, recommendation_yes=True) + ReviewOpinionFactory(review=review, author=staff, opinion_disagree=True) + response = self.get_page(review) + self.assertContains(response, "Disagrees") + + +class ReviewListTestCase(BaseViewTestCase): + user_factory = StaffFactory + url_name = 'funds:submissions:reviews:{}' + base_view_name = 'list' + + def get_kwargs(self, instance): + return {'submission_pk': instance.submission.id} + + def test_review_list_opinion(self): + staff = StaffFactory() + submission = ApplicationSubmissionFactory(status='draft_proposal', workflow_stages=2) + review = ReviewFactory(submission=submission, author=self.user, recommendation_yes=True) + ReviewOpinionFactory(review=review, author=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) + class StaffReviewOpinionCase(BaseViewTestCase): user_factory = StaffFactory -- GitLab