def test_last_scores(self): # add a user u = User(username='******', password='******', confirmed=True) db.session.add(u) db.session.commit() scores = [ (datetime.datetime(2017, 1, 1, 0, 0, 0), { "game": "game1", "score": 10 }), (datetime.datetime(2017, 1, 2, 0, 0, 0), { "game": "game1", "score": 12 }), (datetime.datetime(2017, 1, 3, 0, 0, 0), { "game": "game2", "score": 13 }), (datetime.datetime(2017, 1, 4, 0, 0, 0), { "game": "game3", "score": 14 }), ] for d, s in scores: s = Score(user_id=u.id, state='finished', **s) s.created = d db.session.add(s) db.session.commit() response = self.client.get(url_for('api.last_scores'), headers=self.get_api_headers('john', 'cat')) self.assertTrue(response.status_code == 200) json_response = json.loads(response.data.decode('utf-8')) items = [] for item in json_response["scores"]: items.append(item["score"]) expected = [12, 13, 14] self.assertEqual(items, expected)
def test_get_user_game_scores(self): # add a user u = User(username='******', password='******', confirmed=True, role=Role.get('Administrator')) db.session.add(u) db.session.commit() scores = [ ( datetime.datetime(2017, 1, 3, 0, 0, 0), { "user_id": u.id, "game": "game_test", "score": 17, "max_score": 32, "duration": 64, "state": "running", "is_exam": True }, ), ( datetime.datetime(2017, 1, 2, 0, 0, 0), { "user_id": u.id, "game": "game_test", "score": 7, "max_score": 32, "duration": 64, "state": "running", "is_exam": True }, ), ( datetime.datetime(2017, 1, 1, 0, 0, 0), { "user_id": u.id, "game": "game_test", "score": 27, "max_score": 32, "duration": 64, "state": "running", "is_exam": True }, ), ( datetime.datetime(2017, 1, 1, 0, 0, 0), { "user_id": u.id, "game": "game_test_2", "score": 27, "max_score": 32, "duration": 64, "state": "running", "is_exam": True }, ), ] for d, s in scores: s = Score(**s) s.created = d db.session.add(s) db.session.commit() # get the new score response = self.client.get(url_for('api.last_scores_game') + '?game=game_test', headers=self.get_api_headers('john', 'cat')) self.assertTrue(response.status_code == 200) json_response = json.loads(response.data.decode('utf-8')) expected = [ s[1] for s in sorted(scores, key=lambda k: k[0]) if s[1]["game"] == "game_test" ] scores = json_response["scores"] for a, b in zip(expected, scores): self.assertEquals(a["score"], b["score"])