diff --git a/CHANGELOG b/CHANGELOG index d16d170..776fa10 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,13 @@ + master ====== +1.1.7 +===== + +Fixes #2, https://github.com/agoragames/python-leaderboard/pull/2. Fixed a +bug where withscores was passed incorrectly on ascending calls. + Changing redis requirements to ensure that ConnectionPool accepts a host keyword argument @@ -20,7 +27,7 @@ Member identifiers are cast to strings where appropriate Uses connection pooling for each unique (host,port,db) connection -Renamed `add_member` to `rank_member` to clarify that it applies to both +Renamed `add_member` to `rank_member` to clarify that it applies to both new and existing members Added `clear` to delete a leaderboard and its members diff --git a/leaderboard/__init__.py b/leaderboard/__init__.py index cf4aa4d..5227bc0 100644 --- a/leaderboard/__init__.py +++ b/leaderboard/__init__.py @@ -4,7 +4,7 @@ class Leaderboard(object): - VERSION = '1.1.6' + VERSION = '1.1.7' DEFAULT_PAGE_SIZE = 25 DEFAULT_REDIS_HOST = 'localhost' DEFAULT_REDIS_PORT = 6379 @@ -141,7 +141,7 @@ def leaders(self, current_page, with_scores = True, with_rank = True, use_zero_i ending_offset = (starting_offset + page_size) - 1 - raw_leader_data = self._range_method(self._get(**options), self.leaderboard_name, int(starting_offset), int(ending_offset), with_scores) + raw_leader_data = self._range_method(self._get(**options), self.leaderboard_name, int(starting_offset), int(ending_offset), withscores=with_scores) if raw_leader_data: return self._massage_leader_data(raw_leader_data, with_rank, use_zero_index_for_rank) else: @@ -159,7 +159,7 @@ def around_me(self, member, with_scores = True, with_rank = True, use_zero_index ending_offset = (starting_offset + page_size) - 1 - raw_leader_data = self._range_method(self._get(**options), self.leaderboard_name, starting_offset, ending_offset, with_scores) + raw_leader_data = self._range_method(self._get(**options), self.leaderboard_name, starting_offset, ending_offset, withscores=with_scores) if raw_leader_data: return self._massage_leader_data(raw_leader_data, with_rank, use_zero_index_for_rank) diff --git a/setup.py b/setup.py index 12121de..2e4ef6f 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ setup( name='leaderboard', - version='1.1.6', + version='1.1.7', author='Ola Mork, Aaron Westendorf, Vitaly Babiy, Brad LaFountain', author_email="ola@agoragames.com, aaron@agoragames.com, vbabiy@agoragames.com, blafountain@majorleaguegaming.com", url='https://github.com/agoragames/python-leaderboard', diff --git a/tests/leaderboard_test_case.py b/tests/leaderboard_test_case.py index 11a8599..6d586ef 100644 --- a/tests/leaderboard_test_case.py +++ b/tests/leaderboard_test_case.py @@ -82,6 +82,17 @@ def test_leaders(self): self.assertEquals('member_1', leaders[-1]['member']) self.assertEquals(1, leaders[-1]['score']) + def test_leaders_ascending(self): + lb = leaderboard.Leaderboard('asc',order='asc') + + for index in range(1, 11): + lb.rank_member("member_%d" % index, index) + + leaders = lb.leaders(1) + self.assertEquals(10, len(leaders)) + self.assertEquals('member_1', leaders[0]['member']) + self.assertEquals('member_10', leaders[-1]['member']) + def test_leaders_with_multiple_pages(self): self._add_members_to_leaderboard(self.leaderboard.DEFAULT_PAGE_SIZE * 3 + 1) self.assertEquals(self.leaderboard.DEFAULT_PAGE_SIZE * 3 + 1, self.leaderboard.total_members())