def test_multiple(self): users = self._add_nicks([u'nick1', u'nick2']) self._add([ (users['nick1'].id, ScoreKey.location, self.yesterday, 20), (users['nick1'].id, ScoreKey.location, self.today, 2), (users['nick1'].id, ScoreKey.new_wifi, self.today, 4), (users['nick2'].id, ScoreKey.location, self.today, 7), (users['nick2'].id, ScoreKey.new_cell, self.today, 12), ]) self._queue([ (users['nick2'].id, ScoreKey.location, 4), (users['nick1'].id, ScoreKey.location, 1), (users['nick1'].id, ScoreKey.location, 1), (users['nick1'].id, ScoreKey.new_wifi, 2), (users['nick1'].id, ScoreKey.new_cell, 3), (users['nick2'].id, ScoreKey.new_cell, 1), ]) update_score.delay(batch=3).get() scores = (self.session.query(Score) .filter(Score.time == self.today)).all() self.assertEqual(len(scores), 5) grouped = {} for score in scores: grouped[(score.userid, score.key)] = score.value self.assertEqual(grouped, { (users['nick1'].id, ScoreKey.location): 4, (users['nick1'].id, ScoreKey.new_cell): 3, (users['nick1'].id, ScoreKey.new_wifi): 6, (users['nick2'].id, ScoreKey.location): 11, (users['nick2'].id, ScoreKey.new_cell): 13, })
def test_multiple(self): users = self._add_nicks([u'nick1', u'nick2']) self._add([ (users['nick1'].id, ScoreKey.location, self.yesterday, 20), (users['nick1'].id, ScoreKey.location, self.today, 2), (users['nick1'].id, ScoreKey.new_wifi, self.today, 4), (users['nick2'].id, ScoreKey.location, self.today, 7), (users['nick2'].id, ScoreKey.new_cell, self.today, 12), ]) self._queue([ (users['nick2'].id, ScoreKey.location, 4), (users['nick1'].id, ScoreKey.location, 1), (users['nick1'].id, ScoreKey.location, 1), (users['nick1'].id, ScoreKey.new_wifi, 2), (users['nick1'].id, ScoreKey.new_cell, 3), (users['nick2'].id, ScoreKey.new_cell, 1), ]) update_score.delay(batch=3).get() scores = (self.session.query(Score).filter( Score.time == self.today)).all() self.assertEqual(len(scores), 5) grouped = {} for score in scores: grouped[(score.userid, score.key)] = score.value self.assertEqual( grouped, { (users['nick1'].id, ScoreKey.location): 4, (users['nick1'].id, ScoreKey.new_cell): 3, (users['nick1'].id, ScoreKey.new_wifi): 6, (users['nick2'].id, ScoreKey.location): 11, (users['nick2'].id, ScoreKey.new_cell): 13, })
def test_update(self): users = self._add_nicks([u'nick1']) self._add([(users[u'nick1'].id, ScoreKey.location, self.today, 2)]) self._queue([(users[u'nick1'].id, ScoreKey.location, 3)]) update_score.delay().get() scores = self.session.query(Score).all() self.assertEqual(len(scores), 1) self.assertEqual(scores[0].value, 5)
def test_empty(self): update_score.delay().get() self.assertEqual(self.session.query(Score).count(), 0)