class KarmaActionTests(TestCase): def setUp(self): super(KarmaActionTests, self).setUp() self.user = user(save=True) try: self.mgr = KarmaManager() redis_client('karma').flushdb() except RedisError: raise SkipTest @mock.patch.object(waffle, 'switch_is_active') def test_action(self, switch_is_active): """Save an action and verify.""" switch_is_active.return_value = True TestAction1(user=self.user).save() eq_(3, self.mgr.count('all', self.user, type='points')) eq_(1, self.mgr.count('all', self.user, type=TestAction1.action_type)) today = date.today() eq_(1, self.mgr.day_count(self.user, today, TestAction1.action_type)) eq_( 1, self.mgr.month_count(self.user, today.year, today.month, TestAction1.action_type)) eq_( 1, self.mgr.year_count(self.user, today.year, TestAction1.action_type)) @mock.patch.object(waffle, 'switch_is_active') def test_two_actions(self, switch_is_active): """Save two actions, one twice, and verify.""" switch_is_active.return_value = True TestAction1(user=self.user).save() TestAction2(user=self.user).save() TestAction2(user=self.user).save() eq_(17, self.mgr.count('all', self.user, type='points')) eq_(1, self.mgr.count('all', self.user, type=TestAction1.action_type)) eq_(2, self.mgr.count('all', self.user, type=TestAction2.action_type)) today = date.today() eq_(1, self.mgr.day_count(self.user, today, TestAction1.action_type)) eq_( 1, self.mgr.month_count(self.user, today.year, today.month, TestAction1.action_type)) eq_( 1, self.mgr.year_count(self.user, today.year, TestAction1.action_type)) eq_(2, self.mgr.day_count(self.user, today, TestAction2.action_type)) eq_( 2, self.mgr.month_count(self.user, today.year, today.month, TestAction2.action_type)) eq_( 2, self.mgr.year_count(self.user, today.year, TestAction2.action_type)) @mock.patch.object(waffle, 'switch_is_active') def test_delete_action(self, switch_is_active): """Save two actions, one twice, and verify.""" switch_is_active.return_value = True today = date.today() # Create two TestAction1s and verify counts. TestAction1(user=self.user).save() TestAction1(user=self.user).save() eq_(6, self.mgr.count('all', self.user, type='points')) eq_(2, self.mgr.count('all', self.user, type=TestAction1.action_type)) today = date.today() eq_(2, self.mgr.day_count(self.user, today, TestAction1.action_type)) eq_( 2, self.mgr.month_count(self.user, today.year, today.month, TestAction1.action_type)) eq_( 2, self.mgr.year_count(self.user, today.year, TestAction1.action_type)) # Delete one and verify new counts TestAction1(user=self.user).delete() eq_(3, self.mgr.count('all', self.user, type='points')) eq_(1, self.mgr.count('all', self.user, type=TestAction1.action_type)) today = date.today() eq_(1, self.mgr.day_count(self.user, today, TestAction1.action_type)) eq_( 1, self.mgr.month_count(self.user, today.year, today.month, TestAction1.action_type)) eq_( 1, self.mgr.year_count(self.user, today.year, TestAction1.action_type)) # Delete the other and verify all zeroes TestAction1(user=self.user).delete() eq_(0, self.mgr.count('all', self.user, type='points')) eq_(0, self.mgr.count('all', self.user, type=TestAction1.action_type)) today = date.today() eq_(0, self.mgr.day_count(self.user, today, TestAction1.action_type)) eq_( 0, self.mgr.month_count(self.user, today.year, today.month, TestAction1.action_type)) eq_( 0, self.mgr.year_count(self.user, today.year, TestAction1.action_type))
class KarmaManagerTests(TestCase): @mock.patch.object(waffle, 'switch_is_active') def setUp(self, switch_is_active): switch_is_active.return_value = True super(KarmaManagerTests, self).setUp() try: self.mgr = KarmaManager() redis_client('karma').flushdb() except RedisError: raise SkipTest self.user1 = user(save=True) self.user2 = user(save=True) self.user3 = user(save=True) today = date.today() # user1 actions (3 + 3 + 7): TestAction1(user=self.user1, day=today).save() TestAction1(user=self.user1, day=today).save() TestAction2(user=self.user1, day=today).save() # user2 actions (3 + 7 + 7): TestAction1(user=self.user2, day=today - timedelta(days=8)).save() TestAction2(user=self.user2, day=today - timedelta(days=32)).save() TestAction2(user=self.user2, day=today - timedelta(days=360)).save() # user3 actions (3 + 3 + 3 + 7): TestAction1(user=self.user3, day=today - timedelta(days=10)).save() TestAction1(user=self.user3, day=today - timedelta(days=40)).save() TestAction1(user=self.user3, day=today - timedelta(days=190)).save() TestAction2(user=self.user3, day=today - timedelta(days=3)).save() @mock.patch.object(waffle, 'switch_is_active') def test_count(self, switch_is_active): """Test count method.""" switch_is_active.return_value = True self.mgr.update_top() eq_(13, self.mgr.count('all', self.user1, type='points')) eq_(2, self.mgr.count('all', self.user1, type=TestAction1.action_type)) eq_(1, self.mgr.count('all', self.user1, type=TestAction2.action_type)) eq_(0, self.mgr.count('1w', self.user2, type='points')) eq_(3, self.mgr.count('1m', self.user2, type='points')) eq_(2, self.mgr.count('1y', self.user2, type=TestAction2.action_type)) eq_(2, self.mgr.count('6m', self.user3, type=TestAction1.action_type)) @mock.patch.object(waffle, 'switch_is_active') def test_top_users(self, switch_is_active): """Test top_users method.""" switch_is_active.return_value = True self.mgr.update_top() u1, u2, u3 = self.user1, self.user2, self.user3 eq_([u3, u1, u2], self.mgr.top_users('3m')) eq_([u3, u1, u2], self.mgr.top_users('all', type=TestAction1.action_type)) eq_([u3, u1, u2], self.mgr.top_users('all', type=TestAction1.action_type)) eq_([u1], self.mgr.top_users('1w', type=TestAction1.action_type)) eq_([u1, u3], self.mgr.top_users(daterange='1w')) @mock.patch.object(waffle, 'switch_is_active') def test_ranking(self, switch_is_active): """Test ranking method.""" switch_is_active.return_value = True self.mgr.update_top() eq_(1, self.mgr.ranking('all', self.user2)) eq_(3, self.mgr.ranking('all', self.user1)) eq_(1, self.mgr.ranking('1w', self.user1)) eq_(1, self.mgr.ranking('all', self.user3, type=TestAction1.action_type)) @mock.patch.object(waffle, 'switch_is_active') def test_recalculate_points(self, switch_is_active): """Test the recalculate_points method.""" switch_is_active.return_value = True # Create Points with new point values. p1 = Points.objects.create(action='test-action-1', points=15) Points.objects.create(action='test-action-2', points=12) self.mgr.recalculate_points(self.user1) eq_(42, self.mgr.count('all', self.user1, type='points')) # Update one of the Point values. p1.points = 30 p1.save() self.mgr.recalculate_points(self.user1) eq_(72, self.mgr.count('all', self.user1, type='points')) @mock.patch.object(waffle, 'switch_is_active') def test_overview_counts(self, switch_is_active): """Verify the overview counts are correct.""" switch_is_active.return_value = True self.mgr.update_top() eq_(46, self.mgr.count('all', type='points')) eq_(6, self.mgr.count('all', type=TestAction1.action_type)) eq_(4, self.mgr.count('all', type=TestAction2.action_type)) eq_(2, self.mgr.count('1w', type=TestAction1.action_type)) eq_(2, self.mgr.count('1m', type=TestAction2.action_type)) eq_(3, self.mgr.count('6m', type=TestAction2.action_type)) eq_(2, self.mgr.day_count(type=TestAction1.action_type)) eq_(1, self.mgr.day_count(type=TestAction2.action_type))
class KarmaActionTests(TestCase): def setUp(self): super(KarmaActionTests, self).setUp() self.user = user(save=True) try: self.mgr = KarmaManager() redis_client('karma').flushdb() except RedisError: raise SkipTest @mock.patch.object(waffle, 'switch_is_active') def test_action(self, switch_is_active): """Save an action and verify.""" switch_is_active.return_value = True TestAction1(user=self.user).save() eq_(3, self.mgr.count('all', self.user, type='points')) eq_(1, self.mgr.count('all', self.user, type=TestAction1.action_type)) today = date.today() eq_(1, self.mgr.day_count(self.user, today, TestAction1.action_type)) eq_(1, self.mgr.month_count(self.user, today.year, today.month, TestAction1.action_type)) eq_(1, self.mgr.year_count(self.user, today.year, TestAction1.action_type)) @mock.patch.object(waffle, 'switch_is_active') def test_two_actions(self, switch_is_active): """Save two actions, one twice, and verify.""" switch_is_active.return_value = True TestAction1(user=self.user).save() TestAction2(user=self.user).save() TestAction2(user=self.user).save() eq_(17, self.mgr.count('all', self.user, type='points')) eq_(1, self.mgr.count('all', self.user, type=TestAction1.action_type)) eq_(2, self.mgr.count('all', self.user, type=TestAction2.action_type)) today = date.today() eq_(1, self.mgr.day_count(self.user, today, TestAction1.action_type)) eq_(1, self.mgr.month_count(self.user, today.year, today.month, TestAction1.action_type)) eq_(1, self.mgr.year_count(self.user, today.year, TestAction1.action_type)) eq_(2, self.mgr.day_count(self.user, today, TestAction2.action_type)) eq_(2, self.mgr.month_count(self.user, today.year, today.month, TestAction2.action_type)) eq_(2, self.mgr.year_count(self.user, today.year, TestAction2.action_type)) @mock.patch.object(waffle, 'switch_is_active') def test_delete_action(self, switch_is_active): """Save two actions, one twice, and verify.""" switch_is_active.return_value = True today = date.today() # Create two TestAction1s and verify counts. TestAction1(user=self.user).save() TestAction1(user=self.user).save() eq_(6, self.mgr.count('all', self.user, type='points')) eq_(2, self.mgr.count('all', self.user, type=TestAction1.action_type)) today = date.today() eq_(2, self.mgr.day_count(self.user, today, TestAction1.action_type)) eq_(2, self.mgr.month_count(self.user, today.year, today.month, TestAction1.action_type)) eq_(2, self.mgr.year_count(self.user, today.year, TestAction1.action_type)) # Delete one and verify new counts TestAction1(user=self.user).delete() eq_(3, self.mgr.count('all', self.user, type='points')) eq_(1, self.mgr.count('all', self.user, type=TestAction1.action_type)) today = date.today() eq_(1, self.mgr.day_count(self.user, today, TestAction1.action_type)) eq_(1, self.mgr.month_count(self.user, today.year, today.month, TestAction1.action_type)) eq_(1, self.mgr.year_count(self.user, today.year, TestAction1.action_type)) # Delete the other and verify all zeroes TestAction1(user=self.user).delete() eq_(0, self.mgr.count('all', self.user, type='points')) eq_(0, self.mgr.count('all', self.user, type=TestAction1.action_type)) today = date.today() eq_(0, self.mgr.day_count(self.user, today, TestAction1.action_type)) eq_(0, self.mgr.month_count(self.user, today.year, today.month, TestAction1.action_type)) eq_(0, self.mgr.year_count(self.user, today.year, TestAction1.action_type))