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'
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)
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)
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'
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)
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'
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'