You've already forked q3stats
Q3Stats is now open source! :)
This commit is contained in:
104
tests_lib/test_lib_queries.py
Normal file
104
tests_lib/test_lib_queries.py
Normal file
@@ -0,0 +1,104 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import datetime
|
||||
|
||||
from q3stats.lib import queries
|
||||
from q3stats.lib.scripts import utils
|
||||
from q3stats.models import Game, Score
|
||||
from q3stats.testing import BaseQ3StatsTestCase
|
||||
|
||||
|
||||
class Test_LibQueries(BaseQ3StatsTestCase):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super(Test_LibQueries, cls).setUpClass()
|
||||
|
||||
with utils.db_session(cls._config) as session:
|
||||
game1_dt = datetime.datetime.now() - datetime.timedelta(days=1)
|
||||
|
||||
game1 = Game(
|
||||
uuid='game1',
|
||||
map='Q3DM7',
|
||||
date=game1_dt.date(),
|
||||
time=game1_dt.time(),
|
||||
fraglimit=20,
|
||||
attrs={}
|
||||
)
|
||||
|
||||
game1.scores.extend([
|
||||
Score(
|
||||
player='Player 1',
|
||||
score=20,
|
||||
kills=20,
|
||||
deaths=0,
|
||||
suicides=10,
|
||||
net=0,
|
||||
damage_taken=123,
|
||||
damage_given=456,
|
||||
total_health=123,
|
||||
total_armor=456,
|
||||
weapons={},
|
||||
items={},
|
||||
powerups={}
|
||||
),
|
||||
])
|
||||
|
||||
game2_dt = datetime.datetime.now()
|
||||
|
||||
game2 = Game(
|
||||
uuid='game2',
|
||||
map='Q3DM7',
|
||||
date=game2_dt.date(),
|
||||
time=game2_dt.time(),
|
||||
fraglimit=10,
|
||||
attrs={}
|
||||
)
|
||||
|
||||
game2.scores.extend([
|
||||
Score(
|
||||
player='Player 2',
|
||||
score=-10,
|
||||
kills=10,
|
||||
deaths=0,
|
||||
suicides=20,
|
||||
net=0,
|
||||
damage_taken=123,
|
||||
damage_given=456,
|
||||
total_health=123,
|
||||
total_armor=456,
|
||||
weapons={},
|
||||
items={},
|
||||
powerups={}
|
||||
),
|
||||
])
|
||||
|
||||
session.add_all([game1, game2])
|
||||
session.commit()
|
||||
|
||||
cls._days = [game2_dt.date(), game1_dt.date()]
|
||||
|
||||
def test_get_game_dates(self):
|
||||
with utils.db_session(self._config) as session:
|
||||
dates = queries.get_game_dates(session)
|
||||
assert dates == self._days
|
||||
|
||||
def test_get_palyer_sessions(self):
|
||||
with utils.db_session(self._config) as session:
|
||||
sessions = queries.get_player_sessions(session, 'Player 1')
|
||||
assert sessions == [self._days[1]]
|
||||
|
||||
def test_get_top_players_kills(self):
|
||||
with utils.db_session(self._config) as session:
|
||||
result = queries.get_top_players(session, agg_by='kills')
|
||||
|
||||
assert len(result) == 2
|
||||
assert result[0] == ('Player 1', 20)
|
||||
assert result[1] == ('Player 2', 10)
|
||||
|
||||
def test_get_top_players_suicides(self):
|
||||
with utils.db_session(self._config) as session:
|
||||
result = queries.get_top_players(session, agg_by='suicides')
|
||||
|
||||
assert len(result) == 2
|
||||
assert result[0] == ('Player 2', 20)
|
||||
assert result[1] == ('Player 1', 10)
|
||||
Reference in New Issue
Block a user