diff --git a/opentech/apply/review/tests/factories/models.py b/opentech/apply/review/tests/factories/models.py index 2d59912a3ead56fc6f9d6389e9b221c96b212173..a6d825394a52951c3a37d9e2d409e8da67916c58 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 d58724ff3f442a40caa974033a3cbd9c7bc92570..88114bd58dc0f37aa4f768c887b0a839e85c452f 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