def test_leaders_weekly(self): session = self.db_master_session for i in range(3): user = User(nickname=unicode(i)) session.add(user) session.flush() score1 = Score(userid=user.id, value=i) score1.name = 'new_cell' session.add(score1) score2 = Score(userid=user.id, value=i) score2.name = 'new_wifi' session.add(score2) session.commit() request = DummyRequest() request.db_slave_session = self.db_master_session inst = self._make_view(request) result = inst.leaders_weekly_view() for score_name in ('new_cell', 'new_wifi'): self.assertEqual( result['scores'][score_name]['leaders1'], [{'nickname': u'2', 'num': 2, 'pos': 1}, {'nickname': u'1', 'num': 1, 'pos': 2}]) self.assertEqual( result['scores'][score_name]['leaders2'], [{'nickname': u'0', 'num': 0, 'pos': 3}])
def test_leaders_weekly(self): session = self.db_master_session for i in range(3): user = User(nickname=unicode(i)) session.add(user) session.flush() score1 = Score(userid=user.id, value=i) score1.name = 'new_cell' session.add(score1) score2 = Score(userid=user.id, value=i) score2.name = 'new_wifi' session.add(score2) session.commit() request = DummyRequest() request.db_slave_session = self.db_master_session request.registry.redis_client = self.redis_client inst = self._make_view(request) result = inst.leaders_weekly_view() for score_name in ('new_cell', 'new_wifi'): self.assertEqual( result['scores'][score_name]['leaders1'], [{'nickname': u'2', 'num': 2, 'pos': 1}, {'nickname': u'1', 'num': 1, 'pos': 2}]) self.assertEqual( result['scores'][score_name]['leaders2'], [{'nickname': u'0', 'num': 0, 'pos': 3}]) # call the view again, without a working db session, so # we can be sure to use the cached result inst = self._make_view(request) request.db_slave_session = None second_result = inst.leaders_weekly_view() self.assertEqual(second_result, result)
def test_leaders(self): session = self.db_master_session today = datetime.utcnow().date() yesterday = today - timedelta(days=1) for i in range(3): user = User(nickname=unicode(i)) session.add(user) session.flush() score1 = Score(userid=user.id, time=today, value=i) score1.name = 'location' session.add(score1) score2 = Score(userid=user.id, time=yesterday, value=i + 1) score2.name = 'location' session.add(score2) session.commit() request = DummyRequest() request.db_slave_session = self.db_master_session inst = self._make_view(request) result = inst.leaders_view() self.assertEqual( result['leaders1'], [{'anchor': u'2', 'nickname': u'2', 'num': 5, 'pos': 1}, {'anchor': u'1', 'nickname': u'1', 'num': 3, 'pos': 2}]) self.assertEqual( result['leaders2'], [{'anchor': u'0', 'nickname': u'0', 'num': 1, 'pos': 3}])
def test_leaders_weekly(self): session = self.db_master_session for i in range(3): user = User(nickname=unicode(i)) session.add(user) session.flush() score1 = Score(userid=user.id, value=i) score1.name = 'new_cell' session.add(score1) score2 = Score(userid=user.id, value=i) score2.name = 'new_wifi' session.add(score2) session.commit() request = DummyRequest() request.db_slave_session = self.db_master_session inst = self._make_view(request) result = inst.leaders_weekly_view() for score_name in ('new_cell', 'new_wifi'): self.assertEqual(result['scores'][score_name]['leaders1'], [{ 'nickname': u'2', 'num': 2, 'pos': 1 }, { 'nickname': u'1', 'num': 1, 'pos': 2 }]) self.assertEqual(result['scores'][score_name]['leaders2'], [{ 'nickname': u'0', 'num': 0, 'pos': 3 }])
def test_leaders(self): session = self.db_master_session today = util.utcnow().date() yesterday = today - timedelta(days=1) for i in range(3): user = User(nickname=unicode(i)) session.add(user) session.flush() score1 = Score(userid=user.id, time=today, value=i) score1.name = 'location' session.add(score1) score2 = Score(userid=user.id, time=yesterday, value=i + 1) score2.name = 'location' session.add(score2) session.commit() request = DummyRequest() request.db_slave_session = self.db_master_session request.registry.redis_client = self.redis_client inst = self._make_view(request) result = inst.leaders_view() self.assertEqual( result['leaders1'], [{'anchor': u'2', 'nickname': u'2', 'num': 5, 'pos': 1}, {'anchor': u'1', 'nickname': u'1', 'num': 3, 'pos': 2}]) self.assertEqual( result['leaders2'], [{'anchor': u'0', 'nickname': u'0', 'num': 1, 'pos': 3}]) # call the view again, without a working db session, so # we can be sure to use the cached result inst = self._make_view(request) request.db_slave_session = None second_result = inst.leaders_view() self.assertEqual(second_result, result)
def test_leaders(self): session = self.db_master_session today = datetime.utcnow().date() yesterday = today - timedelta(days=1) for i in range(3): user = User(nickname=unicode(i)) session.add(user) session.flush() score1 = Score(userid=user.id, time=today, value=i) score1.name = 'location' session.add(score1) score2 = Score(userid=user.id, time=yesterday, value=i + 1) score2.name = 'location' session.add(score2) session.commit() request = DummyRequest() request.db_slave_session = self.db_master_session inst = self._make_view(request) result = inst.leaders_view() self.assertEqual( result['leaders1'], [{'nickname': u'2', 'num': 5}, {'nickname': u'1', 'num': 3}]) self.assertEqual( result['leaders2'], [{'nickname': u'0', 'num': 1}])
def test_leaders(self): from ichnaea.content.stats import leaders session = self.db_master_session test_data = [] for i in range(20): test_data.append((u'nick-%s' % i, 7)) highest = u'nick-high-too-long_' highest += (128 - len(highest)) * u'x' test_data.append((highest, 10)) lowest = u'nick-low' test_data.append((lowest, 5)) for nick, value in test_data: user = User(nickname=nick) session.add(user) session.flush() score = Score(userid=user.id, value=value) score.name = 'location' session.add(score) session.commit() # check the result result = leaders(session) self.assertEqual(len(result), 22) self.assertEqual(result[0]['nickname'], highest[:24] + u'...') self.assertEqual(result[0]['num'], 10) self.assertTrue(lowest in [r['nickname'] for r in result])
def test_leaders(self): session = self.db_master_session today = util.utcnow().date() yesterday = today - timedelta(days=1) for i in range(7, 1, -1): user = User(nickname=unicode(i)) session.add(user) session.flush() score1 = Score(userid=user.id, time=today, value=i) score1.name = 'location' session.add(score1) score2 = Score(userid=user.id, time=yesterday, value=i + 1) score2.name = 'location' session.add(score2) session.commit() request = DummyRequest() request.db_slave_session = self.db_master_session request.registry.redis_client = self.redis_client inst = self._make_view(request) result = inst.leaders_view() self.assertEqual(result['leaders1'], [{ 'anchor': u'7', 'nickname': u'7', 'num': 15, 'pos': 1 }, { 'anchor': u'6', 'nickname': u'6', 'num': 13, 'pos': 2 }]) self.assertEqual(result['leaders2'], [{ 'anchor': u'5', 'nickname': u'5', 'num': 11, 'pos': 3 }]) # call the view again, without a working db session, so # we can be sure to use the cached result inst = self._make_view(request) request.db_slave_session = None second_result = inst.leaders_view() self.assertEqual(second_result, result)
def test_leaders_weekly(self): session = self.db_master_session for i in range(3): user = User(nickname=unicode(i)) session.add(user) session.flush() score1 = Score(userid=user.id, value=i) score1.name = 'new_cell' session.add(score1) score2 = Score(userid=user.id, value=i) score2.name = 'new_wifi' session.add(score2) session.commit() request = DummyRequest() request.db_slave_session = self.db_master_session request.registry.redis_client = self.redis_client inst = self._make_view(request) result = inst.leaders_weekly_view() for score_name in ('new_cell', 'new_wifi'): self.assertEqual(result['scores'][score_name]['leaders1'], [{ 'nickname': u'2', 'num': 2, 'pos': 1 }, { 'nickname': u'1', 'num': 1, 'pos': 2 }]) self.assertEqual(result['scores'][score_name]['leaders2'], [{ 'nickname': u'0', 'num': 0, 'pos': 3 }]) # call the view again, without a working db session, so # we can be sure to use the cached result inst = self._make_view(request) request.db_slave_session = None second_result = inst.leaders_weekly_view() self.assertEqual(second_result, result)
def test_leaders_weekly(self): from ichnaea.content.stats import leaders_weekly session = self.db_master_session test_data = [] for i in range(1, 11): test_data.append((u'nick-%s' % i, i)) for nick, value in test_data: user = User(nickname=nick) session.add(user) session.flush() score = Score(userid=user.id, value=value) score.name = 'new_cell' session.add(score) score = Score(userid=user.id, value=21 - value) score.name = 'new_wifi' session.add(score) session.commit() # check the result result = leaders_weekly(session, batch=5) self.assertEqual(len(result), 2) self.assertEqual(set(result.keys()), set(['new_cell', 'new_wifi'])) # check the cell scores scores = result['new_cell'] self.assertEqual(len(scores), 5) self.assertEqual(scores[0]['nickname'], 'nick-10') self.assertEqual(scores[0]['num'], 10) self.assertEqual(scores[-1]['nickname'], 'nick-6') self.assertEqual(scores[-1]['num'], 6) # check the wifi scores scores = result['new_wifi'] self.assertEqual(len(scores), 5) self.assertEqual(scores[0]['nickname'], 'nick-1') self.assertEqual(scores[0]['num'], 20) self.assertEqual(scores[-1]['nickname'], 'nick-5') self.assertEqual(scores[-1]['num'], 16)