def reviewers_score_bar(context, types=None, addon_type=None): user = context.get('user') return new_context(dict( request=context.get('request'), amo=amo, settings=settings, points=ReviewerScore.get_recent(user, addon_type=addon_type), total=ReviewerScore.get_total(user), **ReviewerScore.get_leaderboards(user, types=types, addon_type=addon_type)))
def test_get_recent(self): user2 = UserProfile.objects.get(email='*****@*****.**') self._give_points() time.sleep(1) # Wait 1 sec so ordering by created is checked. self._give_points(status=amo.STATUS_LITE) self._give_points(user=user2) scores = ReviewerScore.get_recent(self.user) eq_(len(scores), 2) eq_(scores[0].score, amo.REVIEWED_SCORES[amo.REVIEWED_ADDON_PRELIM]) eq_(scores[1].score, amo.REVIEWED_SCORES[amo.REVIEWED_ADDON_FULL])
def test_get_recent(self): user2 = UserProfile.objects.get(email='*****@*****.**') self._give_points() time.sleep(1) # Wait 1 sec so ordering by created is checked. self._give_points(status=amo.STATUS_PUBLIC) self._give_points(user=user2) scores = ReviewerScore.get_recent(self.user) assert len(scores) == 2 assert scores[0].score == ( amo.REVIEWED_SCORES[amo.REVIEWED_ADDON_UPDATE]) assert scores[1].score == ( amo.REVIEWED_SCORES[amo.REVIEWED_ADDON_FULL])
def test_caching(self): self._give_points() with self.assertNumQueries(1): ReviewerScore.get_total(self.user) with self.assertNumQueries(0): ReviewerScore.get_total(self.user) with self.assertNumQueries(1): ReviewerScore.get_recent(self.user) with self.assertNumQueries(0): ReviewerScore.get_recent(self.user) with self.assertNumQueries(1): ReviewerScore.get_leaderboards(self.user) with self.assertNumQueries(0): ReviewerScore.get_leaderboards(self.user) with self.assertNumQueries(1): ReviewerScore.get_breakdown(self.user) with self.assertNumQueries(0): ReviewerScore.get_breakdown(self.user) # New points invalidates all caches. self._give_points() with self.assertNumQueries(1): ReviewerScore.get_total(self.user) with self.assertNumQueries(1): ReviewerScore.get_recent(self.user) with self.assertNumQueries(1): ReviewerScore.get_leaderboards(self.user) with self.assertNumQueries(1): ReviewerScore.get_breakdown(self.user)