Skip to content

Commit

Permalink
Merge pull request #2 from agoragames/ascending-fix
Browse files Browse the repository at this point in the history
Fixed a bug where withscores was passed incorrectly on ascending calls.
  • Loading branch information
czarneckid committed Aug 26, 2014
2 parents c706e03 + 88d8dcc commit 9b62d32
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 5 deletions.
9 changes: 8 additions & 1 deletion 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

Expand All @@ -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
Expand Down
6 changes: 3 additions & 3 deletions leaderboard/__init__.py
Expand Up @@ -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
Expand Down Expand Up @@ -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:
Expand All @@ -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)

Expand Down
2 changes: 1 addition & 1 deletion setup.py
Expand Up @@ -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',
Expand Down
11 changes: 11 additions & 0 deletions tests/leaderboard_test_case.py
Expand Up @@ -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())
Expand Down

0 comments on commit 9b62d32

Please sign in to comment.