def test_comment_crud_methods(self): text = 'Test message' user = UserFactory.create(remote_id=TRAVIS_USER_ID) post = PostFactory.create(remote_id=TR_POST_ID, wall_owner=user) mock_comment = CommentFactory.create(text=text, post=post, wall_owner=user) # Create comment = Comment.objects.create( **CommentFactory.get_mock_params_dict( mock_comment, commit_remote=True) ) self.assertTrue(comment.remote_id > 0) self.assertEqual(comment.text, text) fetched_comment = post.fetch_comments(sort='asc').first() self.assertEqual(fetched_comment.text, text) # Update edited_message = 'Edited comment message' comment = Comment.objects.get(id=comment.id) comment.text = edited_message comment.save(commit_remote=True) self.assertEqual(comment.text, edited_message) fetched_comment = post.fetch_comments(sort='asc').first() self.assertEqual(fetched_comment.text, edited_message) # Delete comment.delete() comment1 = Comment.objects.get(id=comment.id) self.assertTrue(comment1.archived) fetched_ids = [comment.remote_id for comment in post.fetch_comments()] self.assertFalse(comment1.remote_id in fetched_ids) # Restore comment.restore() comment1 = Comment.objects.get(id=comment.id) self.assertFalse(comment1.archived) fetched_ids = [comment.remote_id for comment in post.fetch_comments()] self.assertTrue(comment1.remote_id in fetched_ids) # Create with save() comment = Comment() comment.__dict__.update( CommentFactory.get_mock_params_dict(mock_comment) ) comment.text = text + text comment.save(commit_remote=True) self.assertTrue(comment.remote_id > 0) self.assertEqual(comment.text, text + text) fetched_comment = post.fetch_comments(sort='asc').first() self.assertEqual(fetched_comment.text, text + text) comment.delete()
def test_parse_comments(self): response = '''{"response":[6, {"cid":2505,"uid":16271479,"date":1298365200,"text":"Добрый день , кароче такая идея когда опросы создаешь вместо статуса - можно выбрать аудитории опрашиваемых, например только женский или мужской пол могут участвовать (то бишь голосовать в опросе)."}, {"cid":2507,"uid":16271479,"date":1286105582,"text":"Это уже не практично, имхо.<br>Для этого делайте группу и там опрос, а в группу принимайте тех, кого нужно.","reply_to_uid":16271479,"reply_to_cid":2505}, {"cid":2547,"uid":2943,"date":1286218080,"text":"Он будет только для групп благотворительных организаций."}]} ''' group = GroupFactory.create(remote_id=OWNER_ID) post = PostFactory.create(remote_id=TR_POST_ID, wall_owner=group) instance = CommentFactory.create(post=post) author = UserFactory.create(remote_id=16271479) instance.parse(json.loads(response)['response'][1]) instance.save() self.assertEqual(instance.remote_id, '201164356_2505') self.assertEqual(instance.text, u'Добрый день , кароче такая идея когда опросы создаешь вместо статуса - можно выбрать аудитории опрашиваемых, например только женский или мужской пол могут участвовать (то бишь голосовать в опросе).') self.assertEqual(instance.author, author) self.assertTrue(isinstance(instance.date, datetime)) instance = Comment(post=post) instance.parse(json.loads(response)['response'][2]) instance.save() self.assertEqual(instance.remote_id, '201164356_2507') self.assertEqual(instance.reply_for.remote_id, 16271479)
def fetch_post_comments_recursive_calls_ammount_side_effect(*args, **kwargs): comments_count = 100 if kwargs['offset'] == 0 else 6 comments = [CommentFactory.create() for i in range(comments_count)] return Comment.objects.filter(pk__in=[comment.pk for comment in comments])