use py.test instead of nose for testing
This commit is contained in:
parent
6889946ab6
commit
9891b1d785
|
@ -1,4 +1,6 @@
|
||||||
[report]
|
[report]
|
||||||
include = tsstats/*.py
|
|
||||||
exclude_lines =
|
exclude_lines =
|
||||||
if __name__ == .__main__.:
|
if __name__ == .__main__.:
|
||||||
|
|
||||||
|
[run]
|
||||||
|
omit = tsstats/tests/*
|
||||||
|
|
|
@ -16,9 +16,9 @@ matrix:
|
||||||
install:
|
install:
|
||||||
- pip install -r requirements.txt
|
- pip install -r requirements.txt
|
||||||
- pip install -r testing_requirements.txt
|
- pip install -r testing_requirements.txt
|
||||||
- pip install coverage
|
- pip install pytest-cov
|
||||||
|
|
||||||
script: nosetests --with-coverage
|
script: py.test --cov=tsstats tsstats/
|
||||||
|
|
||||||
after_success:
|
after_success:
|
||||||
- pip install coveralls
|
- pip install coveralls
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
nose>=1.3.7
|
pytest>=2.9.1
|
||||||
pyflakes>=1.2.2
|
pyflakes>=1.2.2
|
||||||
BeautifulSoup4>=4.4.1
|
BeautifulSoup4>=4.4.1
|
||||||
|
|
|
@ -6,7 +6,7 @@ except ImportError:
|
||||||
from os import remove
|
from os import remove
|
||||||
from os.path import abspath, exists
|
from os.path import abspath, exists
|
||||||
|
|
||||||
from nose.tools import raises, with_setup
|
import pytest
|
||||||
|
|
||||||
from tsstats import exceptions
|
from tsstats import exceptions
|
||||||
from tsstats.config import parse_config
|
from tsstats.config import parse_config
|
||||||
|
@ -23,23 +23,24 @@ def create_config(values, key='General'):
|
||||||
config.write(configfile)
|
config.write(configfile)
|
||||||
|
|
||||||
|
|
||||||
def clean_config():
|
@pytest.fixture
|
||||||
if exists(configpath):
|
def config(request):
|
||||||
remove(configpath)
|
def clean():
|
||||||
|
if exists(configpath):
|
||||||
|
remove(configpath)
|
||||||
|
request.addfinalizer(clean)
|
||||||
|
|
||||||
|
|
||||||
@with_setup(clean_config, clean_config)
|
def test_invalid_config(config):
|
||||||
@raises(exceptions.InvalidConfig)
|
|
||||||
def test_invalid_config():
|
|
||||||
create_config({
|
create_config({
|
||||||
'loggfile': 'tsstats/tests/res/test.log',
|
'loggfile': 'tsstats/tests/res/test.log',
|
||||||
'outputfile': ''
|
'outputfile': ''
|
||||||
})
|
})
|
||||||
_, _, _, _ = parse_config(configpath)
|
with pytest.raises(exceptions.InvalidConfig):
|
||||||
|
_, _, _, _ = parse_config(configpath)
|
||||||
|
|
||||||
|
|
||||||
@with_setup(clean_config, clean_config)
|
def test_config(config):
|
||||||
def test_config():
|
|
||||||
create_config({
|
create_config({
|
||||||
'logfile': 'tsstats/tests/res/test.log',
|
'logfile': 'tsstats/tests/res/test.log',
|
||||||
'outputfile': 'output.html',
|
'outputfile': 'output.html',
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
from os import remove
|
from os import remove
|
||||||
|
|
||||||
from nose.tools import raises
|
import pytest
|
||||||
|
|
||||||
from tsstats import exceptions
|
from tsstats import exceptions
|
||||||
from tsstats.__main__ import main
|
from tsstats.__main__ import main
|
||||||
|
@ -9,16 +9,23 @@ from tsstats.log import parse_logs
|
||||||
clients = parse_logs('tsstats/tests/res/test.log')
|
clients = parse_logs('tsstats/tests/res/test.log')
|
||||||
|
|
||||||
|
|
||||||
def test_main():
|
@pytest.fixture
|
||||||
|
def output(request):
|
||||||
|
def clean():
|
||||||
|
remove('tsstats/tests/res/output.html')
|
||||||
|
request.addfinalizer(clean)
|
||||||
|
|
||||||
|
|
||||||
|
def test_main(output):
|
||||||
main(config_path='tsstats/tests/res/config.ini')
|
main(config_path='tsstats/tests/res/config.ini')
|
||||||
|
|
||||||
|
|
||||||
@raises(exceptions.ConfigNotFound)
|
|
||||||
def test_main_config_not_found():
|
def test_main_config_not_found():
|
||||||
main(config_path='/some/where/no/conf.ini')
|
with pytest.raises(exceptions.ConfigNotFound):
|
||||||
|
main(config_path='/some/where/no/conf.ini')
|
||||||
|
|
||||||
|
|
||||||
def test_main_idmap_load():
|
def test_main_idmap_load(output):
|
||||||
main(config_path='tsstats/tests/res/config.ini',
|
main(config_path='tsstats/tests/res/config.ini',
|
||||||
id_map_path='tsstats/tests/res/id_map.json')
|
id_map_path='tsstats/tests/res/id_map.json')
|
||||||
|
|
||||||
|
@ -60,14 +67,14 @@ def test_client_repr():
|
||||||
|
|
||||||
|
|
||||||
def test_debug_log():
|
def test_debug_log():
|
||||||
clients = parse_logs('tsstats/tests/res/test.log', file_log=True)
|
parse_logs('tsstats/tests/res/test.log', file_log=True)
|
||||||
open('debug.txt')
|
open('debug.txt')
|
||||||
remove('debug.txt')
|
remove('debug.txt')
|
||||||
|
|
||||||
|
|
||||||
@raises(exceptions.InvalidLog)
|
|
||||||
def test_parse_broken():
|
def test_parse_broken():
|
||||||
clients = parse_logs('tsstats/tests/res/test.log.broken')
|
with pytest.raises(exceptions.InvalidLog):
|
||||||
|
parse_logs('tsstats/tests/res/test.log.broken')
|
||||||
|
|
||||||
|
|
||||||
def test_iter_clients():
|
def test_iter_clients():
|
||||||
|
|
|
@ -1,32 +1,37 @@
|
||||||
from os import remove
|
from os import remove
|
||||||
|
|
||||||
|
import pytest
|
||||||
from bs4 import BeautifulSoup
|
from bs4 import BeautifulSoup
|
||||||
|
|
||||||
from tsstats.utils import seconds_to_text
|
|
||||||
from tsstats.log import parse_logs
|
from tsstats.log import parse_logs
|
||||||
from tsstats.template import render_template
|
from tsstats.template import render_template
|
||||||
|
from tsstats.utils import seconds_to_text
|
||||||
|
|
||||||
output_path = 'tsstats/tests/res/output.html'
|
output_path = 'tsstats/tests/res/output.html'
|
||||||
clients = parse_logs('tsstats/tests/res/test.log')
|
clients = parse_logs('tsstats/tests/res/test.log')
|
||||||
|
|
||||||
|
|
||||||
class TestTemplate:
|
@pytest.fixture
|
||||||
def teardown_class():
|
def output(request):
|
||||||
remove(output_path)
|
def clean():
|
||||||
|
remove('tsstats/tests/res/output.html')
|
||||||
|
request.addfinalizer(clean)
|
||||||
|
|
||||||
def test_debug(self):
|
|
||||||
render_template(clients, output_path, debug=True)
|
|
||||||
soup = BeautifulSoup(open(output_path), 'html.parser')
|
|
||||||
# check red label
|
|
||||||
assert soup.find_all(class_='alert alert-danger')
|
|
||||||
# check ident present after nick
|
|
||||||
li = soup.find('li')
|
|
||||||
assert li
|
|
||||||
assert '(' in li.text.split()[1]
|
|
||||||
|
|
||||||
def test_data(self):
|
def test_debug(output):
|
||||||
render_template(clients, output_path)
|
render_template(clients, output_path, debug=True)
|
||||||
soup = BeautifulSoup(open(output_path), 'html.parser')
|
soup = BeautifulSoup(open(output_path), 'html.parser')
|
||||||
# check onlinetime-data
|
# check red label
|
||||||
assert seconds_to_text(clients['1'].onlinetime) == \
|
assert soup.find_all(class_='alert alert-danger')
|
||||||
soup.find('span', class_='badge').text
|
# check ident present after nick
|
||||||
|
li = soup.find('li')
|
||||||
|
assert li
|
||||||
|
assert '(' in li.text.split()[1]
|
||||||
|
|
||||||
|
|
||||||
|
def test_data(output):
|
||||||
|
render_template(clients, output_path)
|
||||||
|
soup = BeautifulSoup(open(output_path), 'html.parser')
|
||||||
|
# check onlinetime-data
|
||||||
|
assert seconds_to_text(clients['1'].onlinetime) == \
|
||||||
|
soup.find('span', class_='badge').text
|
||||||
|
|
Loading…
Reference in New Issue