def test_actor_count(self): love = Love.objects.all()[:1][0] feed = NotificationFeed(13) # setup the activities, all in the same aggregated activity activities = [] feed.delete() for x in range(150): activity = Activity(love.user, LoveVerb, love, love.user, time=love.created_at, extra_context=dict(x=x)) activities.append(activity) # now the fast insert self.assertEqual(int(feed.count()), 0) feed.add_many(activities) self.assertEqual(int(feed.count()), 1) aggregated_activity = feed[:1][0] # test our Guesstimate self.assertEqual(aggregated_activity.minimized_activities, 51) self.assertEqual(aggregated_activity.actor_count, 52)
def test_actor_count(self): love = Love.objects.all()[:1][0] feed = NotificationFeed(13) # setup the activities, all in the same aggregated activity activities = [] feed.delete() for x in range(150): activity = Activity(love.user, LoveVerb, love, love.user, time=love.created_at, extra_context=dict(x=x)) activities.append(activity) # now the fast insert self.assertEqual(int(feed.count()), 0) feed.add_many(activities) self.assertEqual(int(feed.count()), 1) aggregated_activity = feed[:1][0] # test our Guesstimate self.assertEqual(aggregated_activity.minimized_activities, 51) self.assertEqual(aggregated_activity.actor_count, 52)
def test_notification_feed(self): loves = Love.objects.all()[:10] feed = NotificationFeed(13) # slow version activities = [] feed.delete() for love in loves: activity = Activity(love.user, LoveVerb, love, love.user, time=love.created_at, extra_context=dict(hello='world')) activities.append(activity) feed.add(activity) assert feed.contains(activity) # so we have something to compare to aggregator = RecentVerbAggregator() aggregated_activities = aggregator.aggregate(activities) # check the feed feed_loves = feed[:20] self.assertEqual(len(aggregated_activities), len(feed_loves)) # now the fast version feed.delete() self.assertEqual(int(feed.count()), 0) feed.add_many(activities) for activity in activities: assert feed.contains(activity) # test if we aggregated correctly self.assertEqual(feed.count_unseen(), len(aggregated_activities)) # verify if we denormalize correctly self.assertEqual(feed.count_unseen(), feed.get_denormalized_count()) # sanity check self.assertNotEqual(feed.count_unseen(), 0) # test marking as seen or read feed.mark_all(seen=True) # verify that the new count is 0 self.assertEqual(feed.count_unseen(), 0) # verify if we denormalize correctly self.assertEqual(feed.count_unseen(), feed.get_denormalized_count())
def test_notification_feed(self): loves = Love.objects.all()[:10] feed = NotificationFeed(13) # slow version activities = [] feed.delete() for love in loves: activity = Activity(love.user, LoveVerb, love, love.user, time=love.created_at, extra_context=dict(hello='world')) activities.append(activity) feed.add(activity) assert feed.contains(activity) # so we have something to compare to aggregator = RecentVerbAggregator() aggregated_activities = aggregator.aggregate(activities) # check the feed feed_loves = feed[:20] self.assertEqual(len(aggregated_activities), len(feed_loves)) # now the fast version feed.delete() self.assertEqual(int(feed.count()), 0) feed.add_many(activities) for activity in activities: assert feed.contains(activity) # test if we aggregated correctly self.assertEqual(feed.count_unseen(), len(aggregated_activities)) # verify if we denormalize correctly self.assertEqual(feed.count_unseen(), feed.get_denormalized_count()) # sanity check self.assertNotEqual(feed.count_unseen(), 0) # test marking as seen or read feed.mark_all(seen=True) # verify that the new count is 0 self.assertEqual(feed.count_unseen(), 0) # verify if we denormalize correctly self.assertEqual(feed.count_unseen(), feed.get_denormalized_count())