def test_polls_counters(self): poll = PollFactory() ChoiceFactory.create_batch(3, poll=poll) choice1, choice2, choice3 = Choice.objects.order_by('id') self.assertEqual(choice1.vote_count, 0) self.assertEqual(choice2.vote_count, 0) self.assertEqual(choice3.vote_count, 0) self.assertEqual(Poll.objects.first().sum_votes, 0) VoteFactory(content_object=choice1, score=1) VoteFactory(content_object=choice2, score=1) VoteFactory(content_object=choice1, score=1) choice1, choice2, choice3 = Choice.objects.order_by('id') self.assertEqual(choice1.vote_count, 2) self.assertEqual(choice2.vote_count, 1) self.assertEqual(choice3.vote_count, 0) self.assertEqual(Poll.objects.first().sum_votes, 3) choice2.delete() self.assertEqual(Poll.objects.first().sum_votes, 2) choice1.delete() self.assertEqual(Poll.objects.first().sum_votes, 0) choice3.delete() self.assertEqual(Poll.objects.first().sum_votes, 0)
def test_article_rating(self): article = ArticleFactory() VoteFactory(content_object=article, score=3) VoteFactory(content_object=article, score=5) article.refresh_from_db() self.assertEqual(article.rating, 4) self.assertEqual(article.vote_count, 2)
def test_comment_likes(self): comment = CommentFactory() for score in (1, -1, 1, 1): VoteFactory(content_object=comment, score=score) comment.refresh_from_db() self.assertEqual(comment.karma, 2) Vote.objects.all().delete() comment.refresh_from_db() self.assertEqual(comment.karma, 0)
def create_votes_for(self, obj_id, obj_ct, max_count, tokens, users, score_fun): vote_count = random.randint(0, max_count) vote_tokens = random.sample(tokens, vote_count) vote_users = random.sample(users, vote_count) for i in range(vote_count): params = dict(object_id=obj_id, content_type=obj_ct, score=score_fun()) if random.randint(0, 1): params['token'] = vote_tokens[i] else: params['user'] = vote_users[i] VoteFactory(**params)
def test_update_vote_article_anonymous(self): article = ArticleFactory() self.app.get('/') # create session_key token = Session.objects.first().session_key VoteFactory(content_object=article, score=2, token=token) resp = self.app.post('/votes/article/', { 'object_id': article.id, 'score': 5 }, HTTP_REFERER='/material/news/1/') self.assertEqual(resp.status_code, 302) self.assertEqual(resp.url, '/material/news/1/') votes = Vote.objects.all() self.assertEqual(len(votes), 1) self.assertEqual(votes[0].token, token) self.assertEqual(votes[0].object_id, article.id) self.assertEqual(votes[0].score, 5)
def test_update_vote_article_user(self): article = ArticleFactory() user = UserFactory(username='******') user.set_password('secret') user.save() self.app.login(username='******', password='******') VoteFactory(content_object=article, score=2, user=user) resp = self.app.post('/votes/article/', { 'object_id': article.id, 'score': 3 }, HTTP_REFERER='/material/news/1/') self.assertEqual(resp.status_code, 302) self.assertEqual(resp.url, '/material/news/1/') votes = Vote.objects.all() self.assertEqual(len(votes), 1) self.assertEqual(votes[0].user, user) self.assertEqual(votes[0].object_id, article.id) self.assertEqual(votes[0].score, 3)
def test_update_vote_comment_user(self): comment = CommentFactory() user = UserFactory(username='******') user.set_password('secret') user.save() self.app.login(username='******', password='******') VoteFactory(content_object=comment, score=1, user=user) resp = self.app.post('/votes/comment/', { 'object_id': comment.id, 'score': -1 }, HTTP_REFERER='/material/news/1/') self.assertEqual(resp.status_code, 302) self.assertEqual(resp.url, '/material/news/1/') votes = Vote.objects.all() self.assertEqual(len(votes), 1) self.assertEqual(votes[0].user, user) self.assertEqual(votes[0].object_id, comment.id) self.assertEqual(votes[0].score, -1)