Skip to content
This repository has been archived by the owner on Apr 11, 2022. It is now read-only.

Commit

Permalink
Merge pull request #134 from mysteriumnetwork/leaderboard-1023
Browse files Browse the repository at this point in the history
leaderboard now only shows the participants of the bounty programme
  • Loading branch information
vkuznecovas committed May 8, 2019
2 parents fdd712e + b93581e commit d151c23
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 6 deletions.
1 change: 1 addition & 0 deletions api/stats/db_queries/leaderboard.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ def get_leaderboard_rows(date_from, date_to, offset=0, limit=10):
AND s.client_updated_at <= '{date_to}'
AND n.updated_at >= '{date_from}'
AND n.updated_at <= '{date_to}'
AND ir.bounty_program = TRUE
GROUP BY ir.identity, n.node_key
ORDER BY total_bytes DESC
LIMIT {limit}
Expand Down
36 changes: 30 additions & 6 deletions tests/stats/db_queries/test_leaderboard.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

class TestGetLeaderBoardRows(TestCase):
def test_correct_unique_users_and_service_type_match(self):
self._create_identity_registration('provider id')
self._create_identity_registration('provider id', True)
self._create_node('provider id', 'service x', now)
self._create_node('provider id', 'service y', now)
self._create_session(
Expand All @@ -35,8 +35,31 @@ def test_correct_unique_users_and_service_type_match(self):
self.assertEqual(10, rows[0].total_bytes)
self.assertEqual(3, rows[0].unique_users)

def test_does_not_filter_non_bounty_programme(self):
self._create_identity_registration('provider id', False)
self._create_node('provider id', 'service x', now)
self._create_node('provider id', 'service y', now)
self._create_session(
'session 1', 'consumer id 1',
'provider id', 'service x', now, 1, 2
)
self._create_session(
'session 2', 'consumer id 1',
'provider id', 'service y', now, 0, 0
)
self._create_session(
'session 3', 'consumer id 2',
'provider id', 'service y', now, 0, 0
)
self._create_session(
'session 4', 'consumer id 3',
'provider id', 'service y', now, 3, 4
)
rows = get_leaderboard_rows(now - second, now + second)
self.assertEqual(0, len(rows))

def test_node_updated_at_mismatch(self):
self._create_identity_registration('provider id')
self._create_identity_registration('provider id', True)
self._create_node('provider id', 'service 1', now - second)
self._create_node('provider id', 'service 2', now + second)
self._create_session(
Expand All @@ -51,7 +74,7 @@ def test_node_updated_at_mismatch(self):
self.assertEqual(0, len(rows))

def test_session_updated_at_mismatch(self):
self._create_identity_registration('provider id')
self._create_identity_registration('provider id', True)
self._create_node('provider id', 'service', now)
self._create_session(
'session 1', None, 'provider id',
Expand All @@ -65,7 +88,7 @@ def test_session_updated_at_mismatch(self):
self.assertEqual(0, len(rows))

def test_node_has_no_sessions(self):
self._create_identity_registration('provider id')
self._create_identity_registration('provider id', True)
self._create_node('provider id', 'service', now)
rows = get_leaderboard_rows(now, now)
self.assertEqual(0, len(rows))
Expand All @@ -80,7 +103,7 @@ def test_node_was_not_registered(self):
self.assertEqual(0, len(rows))

def test_registered_without_node(self):
self._create_identity_registration('provider id')
self._create_identity_registration('provider id', True)
self._create_session(
'session', None, 'provider id',
'service', now, 0, 0
Expand All @@ -89,8 +112,9 @@ def test_registered_without_node(self):
self.assertEqual(0, len(rows))

@staticmethod
def _create_identity_registration(id):
def _create_identity_registration(id, bounty_program):
ir = IdentityRegistration(id, '')
ir.bounty_program = bounty_program
db.session.add(ir)
db.session.commit()

Expand Down

0 comments on commit d151c23

Please sign in to comment.