def test_grooming_should_allow_defining_none__inactive_user(self): User.objects.filter(id=self.user.id).update( last_login=now() - timedelta(days=11), ) groom_redis_precaches() self.assertFalse(self.r.exists("sh:streams:spamandeggs:736353:%s" % self.user.id)) self.assertFalse(self.r.exists("sh:streams:spamandeggs:736353:%s:throughs" % self.user.id))
def test_grooming_should_allow_defining_none__inactive_user(self): User.objects.filter(id=self.user.id).update( last_login=now() - timedelta(days=11), ) groom_redis_precaches() self.assertFalse(self.r.exists("sh:streams:spamandeggs:736353:%s" % self.user.id)) self.assertFalse(self.r.exists("sh:streams:spamandeggs:736353:%s:throughs" % self.user.id))
def test_grooming_should_keep_top_x(self): groom_redis_precaches() zitems = self.r.zrange("sh:streams:spamandeggs:1", 0, 10, withscores=True) zitems = {int(score): value.decode("utf-8") for value, score in zitems} self.assertEqual(zitems, self.expected_z) hitems = self.r.hgetall("sh:streams:spamandeggs:1:throughs") hitems = {key.decode("utf-8"): value.decode("utf-8") for key, value in hitems.items()} self.assertEqual(hitems, self.expected_h)
def test_user_fetched_from_db_only_once(self): User.objects.filter(id=self.user.id).update(last_login=now() - timedelta(days=9), ) with self.assertNumQueries(1): groom_redis_precaches() User.objects.filter(id=self.user.id).update(last_login=now() - timedelta(days=11), ) with self.assertNumQueries(1): groom_redis_precaches()
def test_user_fetched_from_db_only_once(self): User.objects.filter(id=self.user.id).update( last_login=now() - timedelta(days=9), ) with self.assertNumQueries(1): groom_redis_precaches() User.objects.filter(id=self.user.id).update( last_login=now() - timedelta(days=11), ) with self.assertNumQueries(1): groom_redis_precaches()
def test_grooming_should_keep_top_x__inactive_user(self): expected_z = {x: str(x ** x) for x in range(8, 10)} expected_h = {str(x ** x): str(x ** x + 1) for x in range(8, 10)} User.objects.filter(id=self.user.id).update( last_login=now() - timedelta(days=11), ) groom_redis_precaches() zitems = self.r.zrange("sh:streams:spamandeggs:736353:%s" % self.user.id, 0, 10, withscores=True) zitems = {int(score): value.decode("utf-8") for value, score in zitems} self.assertEqual(zitems, expected_z) hitems = self.r.hgetall("sh:streams:spamandeggs:736353:%s:throughs" % self.user.id) hitems = {key.decode("utf-8"): value.decode("utf-8") for key, value in hitems.items()} self.assertEqual(hitems, expected_h)
def test_grooming_should_keep_top_x__inactive_user(self): expected_z = {x: str(x ** x) for x in range(8, 10)} expected_h = {str(x ** x): str(x ** x + 1) for x in range(8, 10)} User.objects.filter(id=self.user.id).update( last_login=now() - timedelta(days=11), ) groom_redis_precaches() zitems = self.r.zrange("sh:streams:spamandeggs:736353:%s" % self.user.id, 0, 10, withscores=True) zitems = {int(score): value.decode("utf-8") for value, score in zitems} self.assertEqual(zitems, expected_z) hitems = self.r.hgetall("sh:streams:spamandeggs:736353:%s:throughs" % self.user.id) hitems = {key.decode("utf-8"): value.decode("utf-8") for key, value in hitems.items()} self.assertEqual(hitems, expected_h)