def test_fetch_statistic_error(self, *args, **kwargs): group = GroupFactory(remote_id=GROUP_ID) post = PostFactory(remote_id=POST_ID, owner=group) self.assertEqual(PostStatistic.objects.count(), 0) with self.assertRaises(VkontakteError): post.fetch_statistic(date_from=date.today() - timedelta(2), date_to=date.today())
def test_fetch_statistic(self): group = GroupFactory(remote_id=GROUP_ID) post = PostFactory(remote_id=POST_ID, owner=group) self.assertEqual(PostStatistic.objects.count(), 0) post.fetch_statistic(date_from=date.today() - timedelta(2), date_to=date.today()) self.assertGreater(PostStatistic.objects.count(), 0) stat = PostStatistic.objects.all()[0] self.assertIsInstance(stat.date, date) self.assertGreater(stat.reach, 0)
def test_comment_wall_crud_methods(self): group = GroupFactory(remote_id=GROUP_CRUD_ID) post = PostFactory(remote_id=POST_CRUD_ID, text='', owner=group) user = UserFactory(remote_id=self.token_user_id) self.assertNoCommentsForObject(post) # create Comment.remote.fetch_by_object(object=post) self.assertEqual(Comment.objects.count(), 0) # create comment = Comment(text='Test comment', object=post, owner=group, author=user, date=timezone.now()) comment.save(commit_remote=True) self.objects_to_delete += [comment] self.assertEqual(Comment.objects.count(), 1) self.assertNotEqual(len(comment.remote_id), 0) self.assertCommentTheSameEverywhere(comment) # create by manager comment = Comment.objects.create( text='Test comment created by manager', object=post, owner=group, author=user, date=timezone.now(), commit_remote=True) self.objects_to_delete += [comment] self.assertEqual(Comment.objects.count(), 2) self.assertNotEqual(len(comment.remote_id), 0) self.assertCommentTheSameEverywhere(comment) # update comment.text = 'Test comment updated' comment.save(commit_remote=True) self.assertEqual(Comment.objects.count(), 2) self.assertCommentTheSameEverywhere(comment) # delete comment.delete(commit_remote=True) self.assertEqual(Comment.objects.count(), 2) self.assertTrue(comment.archived) self.assertEqual(Comment.remote.fetch_by_object( object=comment.object).filter(remote_id=comment.remote_id).count(), 0) # restore comment.restore(commit_remote=True) self.assertFalse(comment.archived) self.assertEqual(Comment.objects.count(), 2) self.assertCommentTheSameEverywhere(comment)
def test_fetch_post_reach(self): group = GroupFactory(remote_id=GROUP_ID) post = PostFactory(remote_id=POST_REACH_ID, owner=group) with self.assertRaises(ObjectDoesNotExist): post.reach post.fetch_reach() post = post.__class__.objects.get(pk=post.pk) self.assertGreaterEqual(post.reach.hide, 0) self.assertGreaterEqual(post.reach.join_group, 0) self.assertGreaterEqual(post.reach.links, 0) self.assertGreaterEqual(post.reach.reach_subscribers, 0) self.assertGreaterEqual(post.reach.reach_total, 0) self.assertGreaterEqual(post.reach.report, 0) self.assertGreaterEqual(post.reach.to_group, 0) self.assertGreaterEqual(post.reach.unsubscribe, 0)
def test_parse_post(self): response = '''{"age": [{"reach": 2153, "value": "12-18"}, {"reach": 1113, "value": "18-21"}, {"reach": 984, "value": "21-24"}, {"reach": 948, "value": "24-27"}, {"reach": 642, "value": "27-30"}, {"reach": 555, "value": "30-35"}, {"reach": 363, "value": "35-45"}, {"reach": 357, "value": "45-100"}], "cities": [{"name": "Донецк", "reach": 38, "value": 223}, {"name": "Воронеж", "reach": 25, "value": 1057}, {"name": "Рио", "reach": 18, "value": 136}, {"name": "Тируванамалай", "reach": 14, "value": 427}], "countries": [{"code": "RU", "name": "Россия", "reach": 6548, "value": 1}, {"code": "US", "name": "США", "reach": 15, "value": 9}], "day": "2014-02-27", "link_clicks": 10, "reach": 8243, "reach_subscribers": 357, "sex": [{"reach": 4420, "value": "f"}, {"reach": 3823, "value": "m"}], "sex_age": [{"reach": 1141, "value": "f;12-18"}, {"reach": 464, "value": "f;18-21"}, {"reach": 513, "value": "f;21-24"}, {"reach": 487, "value": "f;24-27"}, {"reach": 355, "value": "f;27-30"}, {"reach": 337, "value": "f;30-35"}, {"reach": 243, "value": "f;35-45"}, {"reach": 186, "value": "f;45-100"}, {"reach": 1012, "value": "m;12-18"}, {"reach": 649, "value": "m;18-21"}, {"reach": 471, "value": "m;21-24"}, {"reach": 461, "value": "m;24-27"}, {"reach": 287, "value": "m;27-30"}, {"reach": 218, "value": "m;30-35"}, {"reach": 120, "value": "m;35-45"}, {"reach": 171, "value": "m;45-100"}]}''' instance = PostStatistic(post=PostFactory()) instance.parse(json.loads(response)) instance.save() self.assertEqual(instance.date, date(2014, 2, 27)) self.assertEqual(instance.reach, 8243) self.assertEqual(instance.reach_subscribers, 357) self.assertEqual(instance.link_clicks, 10) self.assertEqual(instance.reach_males, 3823) self.assertEqual(instance.reach_females, 4420) self.assertEqual(instance.reach_age_18, 2153) self.assertEqual(instance.reach_age_18_21, 1113) self.assertEqual(instance.reach_age_21_24, 984) self.assertEqual(instance.reach_age_24_27, 948) self.assertEqual(instance.reach_age_27_30, 642) self.assertEqual(instance.reach_age_30_35, 555) self.assertEqual(instance.reach_age_35_45, 363) self.assertEqual(instance.reach_age_45, 357) self.assertEqual(instance.reach_males_age_18, 1012) self.assertEqual(instance.reach_males_age_18_21, 649) self.assertEqual(instance.reach_males_age_21_24, 471) self.assertEqual(instance.reach_males_age_24_27, 461) self.assertEqual(instance.reach_males_age_27_30, 287) self.assertEqual(instance.reach_males_age_30_35, 218) self.assertEqual(instance.reach_males_age_35_45, 120) self.assertEqual(instance.reach_males_age_45, 171) self.assertEqual(instance.reach_females_age_18, 1141) self.assertEqual(instance.reach_females_age_18_21, 464) self.assertEqual(instance.reach_females_age_21_24, 513) self.assertEqual(instance.reach_females_age_24_27, 487) self.assertEqual(instance.reach_females_age_27_30, 355) self.assertEqual(instance.reach_females_age_30_35, 337) self.assertEqual(instance.reach_females_age_35_45, 243) self.assertEqual(instance.reach_females_age_45, 186)