90 lines
2.1 KiB
Python
90 lines
2.1 KiB
Python
|
# -*- coding: utf-8 -*-
|
||
|
|
||
|
import datetime
|
||
|
|
||
|
import mock
|
||
|
|
||
|
from q3stats.models import Game, Score
|
||
|
|
||
|
|
||
|
class Test_GameModel(object):
|
||
|
def test_update_uuid(self):
|
||
|
now = datetime.datetime(2017, 2, 14, 20, 21, 0)
|
||
|
|
||
|
game = Game(
|
||
|
uuid=None,
|
||
|
map='Q3DM7',
|
||
|
date=now.date(),
|
||
|
time=now.time()
|
||
|
)
|
||
|
|
||
|
game.update_uuid()
|
||
|
assert game.uuid == '6d302193-6ccd-3515-bd60-11127208e702'
|
||
|
|
||
|
def test_to_json(self):
|
||
|
now = datetime.datetime(2017, 2, 14, 20, 21, 0)
|
||
|
|
||
|
game = Game(
|
||
|
id=10,
|
||
|
uuid='spam',
|
||
|
map='Q3DM7',
|
||
|
date=now.date(),
|
||
|
time=now.time(),
|
||
|
fraglimit=20,
|
||
|
attrs={
|
||
|
'type': 'FFA',
|
||
|
'team_game': False,
|
||
|
'duration': 583
|
||
|
}
|
||
|
)
|
||
|
|
||
|
result = game.to_json()
|
||
|
|
||
|
assert result['id'] == game.id
|
||
|
assert result['uuid'] == game.uuid
|
||
|
assert result['date'] == '2017-02-14'
|
||
|
assert result['time'] == '20:21:00'
|
||
|
assert result['attrs'] == game.attrs
|
||
|
assert result['scores'] is None
|
||
|
|
||
|
def test_to_json_recursive(self):
|
||
|
now = datetime.datetime(2017, 2, 14, 20, 21, 0)
|
||
|
|
||
|
game = Game(
|
||
|
id=10,
|
||
|
uuid='spam',
|
||
|
map='Q3DM7',
|
||
|
date=now.date(),
|
||
|
time=now.time(),
|
||
|
fraglimit=20,
|
||
|
attrs={
|
||
|
'type': 'FFA',
|
||
|
'team_game': False,
|
||
|
'duration': 583
|
||
|
}
|
||
|
)
|
||
|
|
||
|
score = Score(
|
||
|
player='Player 1',
|
||
|
score=20,
|
||
|
kills=21,
|
||
|
deaths=10,
|
||
|
suicides=1,
|
||
|
net=11,
|
||
|
damage_taken=123,
|
||
|
damage_given=456,
|
||
|
total_health=123,
|
||
|
total_armor=456,
|
||
|
weapons={},
|
||
|
items={},
|
||
|
powerups={}
|
||
|
)
|
||
|
score.to_json = mock.Mock(return_value='spam')
|
||
|
game.scores.append(score)
|
||
|
|
||
|
result = game.to_json(recursive=True)
|
||
|
|
||
|
assert result['scores'] is not None
|
||
|
assert len(result['scores']) == 1
|
||
|
assert result['scores'][0] == 'spam'
|