Пример #1
0
    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)
Пример #2
0
    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"])