def reviewers_score_bar(context, types=None): user = context.get('user') return new_context(dict( request=context.get('request'), mkt=mkt, settings=settings, points=ReviewerScore.get_recent(user), total=ReviewerScore.get_total(user), **ReviewerScore.get_leaderboards(user, types=types)))
def reviewers_score_bar(context, types=None): user = context.get('user') return new_context( dict(request=context.get('request'), amo=amo, settings=settings, points=ReviewerScore.get_recent(user), total=ReviewerScore.get_total(user), **ReviewerScore.get_leaderboards(user, types=types)))
def test_no_admins_or_staff_in_leaderboards(self): user2 = UserProfile.objects.get(email='*****@*****.**') self._give_points() self._give_points(user=user2) leaders = ReviewerScore.get_leaderboards(self.user) eq_(leaders['user_rank'], 1) eq_(leaders['leader_near'], []) eq_(leaders['leader_top'][0]['user_id'], self.user.id) eq_(len(leaders['leader_top']), 1) # Only the editor is here. assert user2.id not in [l['user_id'] for l in leaders['leader_top']], ( 'Unexpected admin user found in leaderboards.')
def test_no_admins_or_staff_in_leaderboards(self): user2 = UserProfile.objects.get(email='*****@*****.**') self._give_points() self._give_points(user=user2) leaders = ReviewerScore.get_leaderboards(self.user) eq_(leaders['user_rank'], 1) eq_(leaders['leader_near'], []) eq_(leaders['leader_top'][0]['user_id'], self.user.id) eq_(len(leaders['leader_top']), 1) # Only the editor is here. assert user2.id not in [l['user_id'] for l in leaders['leader_top']], ( 'Unexpected admin user found in leaderboards.')
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)
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_performance(self.user) with self.assertNumQueries(0): ReviewerScore.get_performance(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_performance(self.user)
def test_get_leaderboards_last(self): users = [] for i in range(6): users.append(UserProfile.objects.create(username='******' % i)) last_user = users.pop(len(users) - 1) for u in users: self._give_points(user=u) # Last user gets lower points by a moderation review. ReviewerScore.award_moderation_points(last_user, self.app, 1) leaders = ReviewerScore.get_leaderboards(last_user) eq_(leaders['user_rank'], 6) eq_(len(leaders['leader_top']), 3) eq_(len(leaders['leader_near']), 2)
def test_get_leaderboards_last(self): users = [] for i in range(6): users.append(user_factory()) last_user = users.pop(len(users) - 1) for u in users: self._give_points(user=u) # Last user gets lower points by a moderation review. ReviewerScore.award_moderation_points(last_user, self.app, 1) leaders = ReviewerScore.get_leaderboards(last_user) eq_(leaders["user_rank"], 6) eq_(len(leaders["leader_top"]), 3) eq_(len(leaders["leader_near"]), 2)
def test_get_leaderboards_last(self): users = [] for i in range(6): users.append(user_factory()) last_user = users.pop(len(users) - 1) for u in users: self._give_points(user=u) # Last user gets lower points by a moderation review. ReviewerScore.award_moderation_points(last_user, self.app, 1) leaders = ReviewerScore.get_leaderboards(last_user) eq_(leaders['user_rank'], 6) eq_(len(leaders['leader_top']), 3) eq_(len(leaders['leader_near']), 2)
def reviewers_score_bar(context, types=None, addon_type=None): user = context.get("amo_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_leaderboards(self): user2 = UserProfile.objects.get(email='*****@*****.**') self._give_points() self._give_points() self._give_points(user=user2) leaders = ReviewerScore.get_leaderboards(self.user) eq_(leaders['user_rank'], 1) eq_(leaders['leader_near'], []) eq_(leaders['leader_top'][0]['rank'], 1) eq_(leaders['leader_top'][0]['user_id'], self.user.id) eq_(leaders['leader_top'][0]['total'], amo.REVIEWED_SCORES[amo.REVIEWED_WEBAPP_HOSTED] + amo.REVIEWED_SCORES[amo.REVIEWED_WEBAPP_HOSTED]) eq_(leaders['leader_top'][1]['rank'], 2) eq_(leaders['leader_top'][1]['user_id'], user2.id) eq_(leaders['leader_top'][1]['total'], amo.REVIEWED_SCORES[amo.REVIEWED_WEBAPP_HOSTED])
def test_get_leaderboards(self): user2 = UserProfile.objects.get(email="*****@*****.**") self._give_points() self._give_points() self._give_points(user=user2) leaders = ReviewerScore.get_leaderboards(self.user) eq_(leaders["user_rank"], 1) eq_(leaders["leader_near"], []) eq_(leaders["leader_top"][0]["rank"], 1) eq_(leaders["leader_top"][0]["user_id"], self.user.id) eq_( leaders["leader_top"][0]["total"], mkt.REVIEWED_SCORES[mkt.REVIEWED_WEBAPP_HOSTED] + mkt.REVIEWED_SCORES[mkt.REVIEWED_WEBAPP_HOSTED], ) eq_(leaders["leader_top"][1]["rank"], 2) eq_(leaders["leader_top"][1]["user_id"], user2.id) eq_(leaders["leader_top"][1]["total"], mkt.REVIEWED_SCORES[mkt.REVIEWED_WEBAPP_HOSTED])
def test_get_leaderboards(self): user2 = UserProfile.objects.get(email='*****@*****.**') self._give_points() self._give_points() self._give_points(user=user2) leaders = ReviewerScore.get_leaderboards(self.user) eq_(leaders['user_rank'], 1) eq_(leaders['leader_near'], []) eq_(leaders['leader_top'][0]['rank'], 1) eq_(leaders['leader_top'][0]['user_id'], self.user.id) eq_(leaders['leader_top'][0]['total'], amo.REVIEWED_SCORES[amo.REVIEWED_WEBAPP_HOSTED] + amo.REVIEWED_SCORES[amo.REVIEWED_WEBAPP_HOSTED]) eq_(leaders['leader_top'][1]['rank'], 2) eq_(leaders['leader_top'][1]['user_id'], user2.id) eq_(leaders['leader_top'][1]['total'], amo.REVIEWED_SCORES[amo.REVIEWED_WEBAPP_HOSTED])