Ejemplo n.º 1
0
    def test_blind_reviewing_types_as_reviewer(self):
        """Verify whether BLIND_REVIEWERS setting works properly."""
        # This is not applicable for POSTing views.
        if self.http_method_name == "post":
            return
        self._add_to_reviewers_group()
        proposals = self._create_proposals()
        for proposal in proposals:
            # Create feedback from a random user.
            ProposalFeedbackFactory(proposal=proposal)
            # Create feedback from the proposal's speaker.
            ProposalFeedbackFactory(proposal=proposal,
                                    author=proposal.speaker.user)

        with override_config(BLIND_REVIEWERS=True):
            response = self.client.get(
                reverse(self.reverse_view_name, args=self.reverse_view_args))
            for proposal in proposals:
                self.assertNotContains(response, proposal.speaker.name)
                self.assertNotContains(response,
                                       proposal.speaker.user.username)
                self.assertNotContains(response, proposal.speaker.email)

        with override_config(BLIND_REVIEWERS=False):
            response = self.client.get(
                reverse(self.reverse_view_name, args=self.reverse_view_args))
            for proposal in proposals:
                self.assertContains(response, proposal.speaker.name)
Ejemplo n.º 2
0
    def test_no_duplicate_speaker_emails_when_sending_feedback(self):
        self._add_to_reviewers_group()
        # Create multiple existing proposal feedback authored by the speaker.
        ProposalFeedbackFactory.create_batch(proposal=self.proposal,
                                             author=self.proposal.speaker.user,
                                             size=3)

        response = self._get_response()

        self.assertEqual(response.status_code, 200)
        self.assertEqual(len(mail.outbox), 2)
        for message in mail.outbox:
            self.assertFalse(self._duplicate_email_addresses(message))
Ejemplo n.º 3
0
    def test_no_duplicate_reviewer_emails_when_sending_feedback(self):
        self._i_am_the_speaker_now()
        # Create multiple existing proposal feedback authored by a random user.
        random_user = UserFactory()
        ProposalFeedbackFactory.create_batch(proposal=self.proposal,
                                             author=random_user,
                                             size=3)

        response = self._get_response()

        self.assertEqual(response.status_code, 200)
        # There should be only one message sent - to the random user.
        self.assertEqual(len(mail.outbox), 1)
        self.assertEqual(mail.outbox[0].to, [random_user.email])
        self.assertFalse(self._duplicate_email_addresses(mail.outbox[0]))
    def test_blind_reviewing_types_as_author(self):
        """Verify whether BLIND_AUTHORS setting works properly."""
        self._i_am_the_speaker_now()

        # Create a feedback comment, otherwise this test will pass
        # when it should fail.
        ProposalFeedbackFactory(proposal=self.proposal,
                                author=self.reviewer.user)

        with override_config(BLIND_AUTHORS=True):
            response = self.client.get(
                reverse(self.reverse_view_name, args=self.reverse_view_args))
            self.assertNotContains(response, self.reviewer.name)
            self.assertNotContains(response, self.reviewer.user.username)
            self.assertNotContains(response, self.reviewer.email)
Ejemplo n.º 5
0
    def test_blind_reviewers_as_superuser(self):
        """Verify that superusers ignore the BLIND_REVIEWERS setting."""
        # This is not applicable for POSTing views.
        if self.http_method_name == "post":
            return
        self._become_superuser()
        proposals = self._create_proposals()
        for proposal in proposals:
            ProposalFeedbackFactory(proposal=proposal)

        with override_config(BLIND_REVIEWERS=True):
            response = self.client.get(
                reverse(self.reverse_view_name, args=self.reverse_view_args))
            self.assertContains(response, "Your superuser status")
            for proposal in proposals:
                self.assertContains(response, proposal.speaker.name)
    def test_reviewer_cannot_view_other_reviewers_names(self):
        """Verify that a reviewer cannot view other reviewers' names."""
        other_vote = ProposalVoteFactory(proposal=self.proposal)
        other_feedback = ProposalFeedbackFactory.create(proposal=self.proposal)

        self._add_to_reviewers_group()
        with override_config(BLIND_REVIEWERS=True):
            response = self.client.get(
                reverse(self.reverse_view_name, args=self.reverse_view_args))
            self.assertContains(response, "Anonymous")

            self.assertNotContains(response, other_vote.voter.username)
            self.assertNotContains(response, other_vote.voter.email)

            self.assertNotContains(response, other_feedback.author.username)
            self.assertNotContains(response, other_feedback.author.email)