refactor tsstats.tests.test_template.test_onlinetime

* check client-count in template
* take clients as base instead for comparisons
* dynamically check all included client-objects
TODO
====
* move nick_data-dict-generation into function or fixture
* split tsstats.client.Clients into id and uuid-clients to easily compare client- and template-data
This commit is contained in:
Thor77 2016-06-10 16:45:41 +02:00
parent 3e5c79fc05
commit fde3a921f9
1 changed files with 16 additions and 2 deletions

View File

@ -43,5 +43,19 @@ def test_debug(output):
def test_onlinetime(soup):
assert seconds_to_text(clients['1'].onlinetime) == \
soup.find('span', class_='badge').text
# move this into a (parameterized) fixture or function
items = soup.find('ul', id='onlinetime').find_all('li')
nick_data = {}
for item in items:
nick, data = item.find_all('span')
nick_data[nick.text] = data.text
# seperate between uuid and id-clients or merge them some way
# => assert len(items) == len(clients.id)
assert len(items) == 2
for client in clients:
if client.nick in nick_data and client.onlinetime > 0:
# remove this clause after splitting cients
# (uuid-clients will never have a online-time, because
# they're only used for bans and kicks)
assert nick_data[client.nick] == \
seconds_to_text(client.onlinetime)