コード例 #1
0
    def test_can_if_an_anonymous_user_has_already_voted_in_a_poll(self):
        # Setup
        def get_rendered(poll, user):
            request = self.request_factory.get('/')
            request.user = user
            t = Template(self.loadstatement +
                         '{% if poll|has_been_completed_by:request.user %}'
                         'HAS_VOTED{% else %}HAS_NOT_VOTED{% endif %}')
            c = Context({'poll': poll, 'request': request})
            rendered = t.render(c)

            return rendered

        u2 = AnonymousUser()
        u2.forum_key = 'dummy'
        u3 = AnonymousUser()
        poll_option_1 = TopicPollOptionFactory.create(poll=self.poll_1)
        TopicPollOptionFactory.create(poll=self.poll_1)
        TopicPollVoteFactory.create(poll_option=poll_option_1,
                                    anonymous_key='dummy')

        # Run & check
        assert get_rendered(self.poll_1, u2) == 'HAS_VOTED'
        assert get_rendered(self.poll_2, u2) == 'HAS_NOT_VOTED'
        assert get_rendered(self.poll_2, u3) == 'HAS_NOT_VOTED'
        assert get_rendered(self.poll_2, u3) == 'HAS_NOT_VOTED'
コード例 #2
0
 def test_knows_if_an_anonymous_owner_of_a_post_can_delete_it(self):
     # Setup
     u1 = AnonymousUser()
     u1.forum_key = '1234'
     u2 = AnonymousUser()
     u2.forum_key = '5678'
     u3 = AnonymousUser()
     u3.forum_key = None
     post_1 = PostFactory.create(topic=self.forum_1_topic, anonymous_key='1234')
     post_2 = PostFactory.create(topic=self.forum_3_topic, anonymous_key='1234')
     assign_perm('can_delete_own_posts', u1, self.forum_1)
     assign_perm('can_delete_own_posts', u2, self.forum_1)
     assign_perm('can_delete_own_posts', u3, self.forum_1)
     # Run & check
     assert self.perm_handler.can_delete_post(post_1, u1)
     assert not self.perm_handler.can_delete_post(post_2, u1)
     assert not self.perm_handler.can_delete_post(post_1, u2)
     assert not self.perm_handler.can_delete_post(post_1, u3)
コード例 #3
0
 def test_knows_if_an_anonymous_owner_of_a_post_can_delete_it(self):
     # Setup
     u1 = AnonymousUser()
     u1.forum_key = '1234'
     u2 = AnonymousUser()
     u2.forum_key = '5678'
     u3 = AnonymousUser()
     u3.forum_key = None
     post_1 = PostFactory.create(topic=self.forum_1_topic, anonymous_key='1234')
     post_2 = PostFactory.create(topic=self.forum_3_topic, anonymous_key='1234')
     assign_perm('can_delete_own_posts', u1, self.forum_1)
     assign_perm('can_delete_own_posts', u2, self.forum_1)
     assign_perm('can_delete_own_posts', u3, self.forum_1)
     # Run & check
     assert self.perm_handler.can_delete_post(post_1, u1)
     assert not self.perm_handler.can_delete_post(post_2, u1)
     assert not self.perm_handler.can_delete_post(post_1, u2)
     assert not self.perm_handler.can_delete_post(post_1, u3)
コード例 #4
0
 def test_knows_if_an_anonymous_user_can_vote_in_polls(self):
     # Setup
     u3 = AnonymousUser()
     u3.forum_key = 1
     poll_1 = TopicPollFactory.create(topic=self.forum_1_topic)
     poll_2 = TopicPollFactory.create(topic=self.forum_3_topic)
     poll_3 = TopicPollFactory.create(topic=self.forum_3_topic_2)
     assign_perm('can_vote_in_polls', u3, self.forum_1)
     # Run & check
     assert self.perm_handler.can_vote_in_poll(poll_1, u3)
     assert not self.perm_handler.can_vote_in_poll(poll_2, u3)
     assert not self.perm_handler.can_vote_in_poll(poll_3, u3)
コード例 #5
0
 def test_knows_if_an_anonymous_user_can_vote_in_polls(self):
     # Setup
     u3 = AnonymousUser()
     u3.forum_key = 1
     poll_1 = TopicPollFactory.create(topic=self.forum_1_topic)
     poll_2 = TopicPollFactory.create(topic=self.forum_3_topic)
     poll_3 = TopicPollFactory.create(topic=self.forum_3_topic_2)
     assign_perm('can_vote_in_polls', u3, self.forum_1)
     # Run & check
     assert self.perm_handler.can_vote_in_poll(poll_1, u3)
     assert not self.perm_handler.can_vote_in_poll(poll_2, u3)
     assert not self.perm_handler.can_vote_in_poll(poll_3, u3)
コード例 #6
0
 def test_adds_the_username_field_if_the_user_is_anonymous(self):
     # Setup
     form_data = {
         'subject': faker.text(max_nb_chars=200),
         'content': '[b]{}[/b]'.format(faker.text()),
         'username': '******',
     }
     user = AnonymousUser()
     user.forum_key = '1234'
     # Run
     form = PostForm(data=form_data,
                     user=user,
                     forum=self.top_level_forum,
                     topic=self.topic)
     # Check
     assert 'username' in form.fields
     assert form.is_valid()
     post = form.save()
     assert post.username == 'testname'
コード例 #7
0
    def test_knows_if_an_anonymous_user_can_vote_again_in_a_poll(self):
        # Setup
        u3 = AnonymousUser()
        u3.forum_key = 1
        poll_1 = TopicPollFactory.create(topic=self.forum_1_topic, user_changes=True)
        poll_option_1 = TopicPollOptionFactory.create(poll=poll_1)
        TopicPollOptionFactory.create(poll=poll_1)

        poll_2 = TopicPollFactory.create(topic=self.forum_3_topic)
        poll_option_2 = TopicPollOptionFactory.create(poll=poll_2)
        TopicPollOptionFactory.create(poll=poll_2)

        TopicPollVoteFactory.create(poll_option=poll_option_1, anonymous_key=1)
        TopicPollVoteFactory.create(poll_option=poll_option_2, anonymous_key=1)

        assign_perm('can_vote_in_polls', u3, self.forum_1)
        assign_perm('can_vote_in_polls', u3, self.forum_3)
        # Run & check
        assert self.perm_handler.can_vote_in_poll(poll_1, u3)
        assert not self.perm_handler.can_vote_in_poll(poll_2, u3)
コード例 #8
0
ファイル: test_forms.py プロジェクト: ellmetha/django-machina
 def test_adds_the_username_field_if_the_user_is_anonymous(self):
     # Setup
     form_data = {
         'subject': faker.text(max_nb_chars=200),
         'content': '[b]{}[/b]'.format(faker.text()),
         'username': '******',
     }
     user = AnonymousUser()
     user.forum_key = '1234'
     # Run
     form = PostForm(
         data=form_data,
         user=user,
         forum=self.top_level_forum,
         topic=self.topic)
     # Check
     assert 'username' in form.fields
     assert form.is_valid()
     post = form.save()
     assert post.username == 'testname'
コード例 #9
0
    def test_knows_if_an_anonymous_user_can_vote_again_in_a_poll(self):
        # Setup
        u3 = AnonymousUser()
        u3.forum_key = 1
        poll_1 = TopicPollFactory.create(topic=self.forum_1_topic, user_changes=True)
        poll_option_1 = TopicPollOptionFactory.create(poll=poll_1)
        TopicPollOptionFactory.create(poll=poll_1)

        poll_2 = TopicPollFactory.create(topic=self.forum_3_topic)
        poll_option_2 = TopicPollOptionFactory.create(poll=poll_2)
        TopicPollOptionFactory.create(poll=poll_2)

        TopicPollVoteFactory.create(poll_option=poll_option_1, anonymous_key=1)
        TopicPollVoteFactory.create(poll_option=poll_option_2, anonymous_key=1)

        assign_perm('can_vote_in_polls', u3, self.forum_1)
        assign_perm('can_vote_in_polls', u3, self.forum_3)
        # Run & check
        assert self.perm_handler.can_vote_in_poll(poll_1, u3)
        assert not self.perm_handler.can_vote_in_poll(poll_2, u3)
コード例 #10
0
    def test_can_if_an_anonymous_user_has_already_voted_in_a_poll(self):
        # Setup
        def get_rendered(poll, user):
            request = self.request_factory.get('/')
            request.user = user
            t = Template(self.loadstatement + '{% if poll|has_been_completed_by:request.user %}HAS_VOTED{% else %}HAS_NOT_VOTED{% endif %}')
            c = Context({'poll': poll, 'request': request})
            rendered = t.render(c)

            return rendered

        u2 = AnonymousUser()
        u2.forum_key = 'dummy'
        u3 = AnonymousUser()
        poll_option_1 = TopicPollOptionFactory.create(poll=self.poll_1)
        TopicPollOptionFactory.create(poll=self.poll_1)
        TopicPollVoteFactory.create(poll_option=poll_option_1, anonymous_key='dummy')

        # Run & check
        assert get_rendered(self.poll_1, u2) == 'HAS_VOTED'
        assert get_rendered(self.poll_2, u2) == 'HAS_NOT_VOTED'
        assert get_rendered(self.poll_2, u3) == 'HAS_NOT_VOTED'
        assert get_rendered(self.poll_2, u3) == 'HAS_NOT_VOTED'