12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- # -*- coding: utf -*-
- import datetime
- import mock
- from q3stats.testing import BaseQ3StatsWebAppTestCase
- from q3stats.web_app.blueprints.api_v1.views import dashboard as views_mod
- class Test_GetAPIv1Dashboard(BaseQ3StatsWebAppTestCase):
- def test_ok(self):
- fake_days = [datetime.date(2017, 2, 16), datetime.date(2017, 2, 15)]
- fake_fotm = [
- ['tomekwojcik', 20],
- ['Player 1', 10]
- ]
- fake_eotm = [
- ['Player 1', 20],
- ['tomekwojcik', 10]
- ]
- def fake_get_top_players(session, agg_by='kills'):
- if agg_by == 'suicides':
- return fake_eotm
- return fake_fotm
- with mock.patch.object(views_mod.queries, 'get_game_dates',
- return_value=fake_days):
- with mock.patch.object(views_mod.queries, 'get_top_players',
- side_effect=fake_get_top_players):
- with self.app.test_request_context():
- rsp = self.client.get('/api/v1/dashboard')
- assert rsp.status_code == 200
- views_mod.queries.get_game_dates.assert_called_with(
- mock.ANY
- )
- views_mod.queries.get_top_players.assert_any_call(
- mock.ANY
- )
- views_mod.queries.get_top_players.assert_any_call(
- mock.ANY, agg_by='suicides'
- )
- assert rsp.json['day'] == '2017-02-16'
- assert rsp.json['fotm'] == fake_fotm
- assert rsp.json['eotm'] == fake_eotm
|