示例#1
0
 def test_leaders_reverse(self):
     b = Leaderboard('combat', 'rank', [Leaderboard.RANGE_DAILY], reverse=True, redis=self.r)
     for i in range(1, self.size + 1):
         b.set_metric('player' + str(i), i)
     total, start, end, l = b.leaders(Leaderboard.RANGE_DAILY)
     self.assertEquals(self.size, len(l))
     self.assertEquals(('player20', 20.0, 1, 0), l[0])
示例#2
0
 def test_size2(self):
     b = Leaderboard('combat', 'rank', [Leaderboard.RANGE_DAILY, Leaderboard.RANGE_WEEKLY], reverse=False, redis=self.r)
     for i in range(1, self.size + 1):
         b.set_metric('player' + str(i), i)
     key = b._board_key(Leaderboard.RANGE_DAILY)
     self.assertEquals(self.size, self.r.zcard(key))
     key = b._board_key(Leaderboard.RANGE_WEEKLY)
     self.assertEquals(self.size, self.r.zcard(key))
示例#3
0
    def test_tie_rankings_with_ts_reverse_newest(self):
        bt = Leaderboard('ties', 'hs', ranges=[Leaderboard.RANGE_DAILY],
                         reverse=True,
                         timed_ties=True,
                         tie_oldest_wins=False,
                         redis=self.r)

        bt.set_metric('first', 100, ts=1400000003)
        bt.set_metric('second', 100, ts=1400000002)
        bt.set_metric('third', 100, ts=1400000001)
        bt.set_metric('fourth', 99, ts=1400000000)
        total, start, end, l = bt.leaders(Leaderboard.RANGE_DAILY, 10)
        print l
        self.assertEquals(l[0][0], 'first')
        bt.clear_all()
示例#4
0
    def test_tie_rankings(self):
        # without further handling, ties get ranked lexigraphically
        bt = Leaderboard('ties', 'hs', [Leaderboard.RANGE_DAILY], reverse=True, redis=self.r)
        bt.set_metric('first', 100.0)
        bt.set_metric('second', 100.0)
        bt.set_metric('zzzzz', 100.0)
        total, start, end, l = bt.leaders(Leaderboard.RANGE_DAILY, 10)
        print l
        self.assertEquals(l[0][0], 'zzzzz')
        bt.clear_all()

        bt = Leaderboard('ties', 'hs', [Leaderboard.RANGE_DAILY], reverse=False, redis=self.r)
        bt.set_metric('first', 100.0)
        bt.set_metric('second', 100.0)
        bt.set_metric('aaaaa', 100.0)
        total, start, end, l = bt.leaders(Leaderboard.RANGE_DAILY, 10)
        print l
        self.assertEquals(l[0][0], 'aaaaa')
        bt.clear_all()
示例#5
0
 def _setup_board(self):
     b = Leaderboard('combat', 'rank', [Leaderboard.RANGE_DAILY], reverse=False, redis=self.r)
     for i in range(1, self.size + 1):
         b.set_metric('player' + str(i), i)
     return b