1
|
|
|
"""Unit test configuration file.""" |
2
|
|
|
|
3
|
|
|
import os |
4
|
|
|
import platform |
5
|
|
|
import logging |
6
|
|
|
|
7
|
|
|
import pytest |
8
|
|
|
|
9
|
|
|
ENV = 'TEST_INTEGRATION' # environment variable to enable integration tests |
10
|
|
|
REASON = "'{0}' variable not set".format(ENV) |
11
|
|
|
|
12
|
|
|
ROOT = os.path.dirname(__file__) |
13
|
|
|
FILES = os.path.join(ROOT, 'files') |
14
|
|
|
|
15
|
|
|
|
16
|
|
|
def pytest_configure(config): |
17
|
|
|
"""Disable verbose output when running tests.""" |
18
|
|
|
logging.basicConfig( |
19
|
|
|
level=logging.DEBUG, |
20
|
|
|
format="[%(levelname)-8s] (%(name)s @%(lineno)4d) %(message)s", |
21
|
|
|
) |
22
|
|
|
logging.getLogger('yorm').setLevel(logging.WARNING) |
23
|
|
|
|
24
|
|
|
terminal = config.pluginmanager.getplugin('terminal') |
25
|
|
|
base = terminal.TerminalReporter |
26
|
|
|
|
27
|
|
|
class QuietReporter(base): |
28
|
|
|
"""A py.test reporting that only shows dots when running tests.""" |
29
|
|
|
|
30
|
|
|
def __init__(self, *args, **kwargs): |
31
|
|
|
super().__init__(*args, **kwargs) |
32
|
|
|
self.verbosity = 0 |
33
|
|
|
self.showlongtestinfo = False |
34
|
|
|
self.showfspath = False |
35
|
|
|
|
36
|
|
|
terminal.TerminalReporter = QuietReporter |
37
|
|
|
|
38
|
|
|
|
39
|
|
|
def pytest_runtest_setup(item): |
40
|
|
|
"""pytest setup.""" |
41
|
|
|
if 'linux_only' in item.keywords and platform.system() != 'Linux': |
42
|
|
|
pytest.skip("test can only be run on Linux") |
43
|
|
|
if 'mac_only' in item.keywords and platform.system() != 'Darwin': |
44
|
|
|
pytest.skip("test can only be run on OS X") |
45
|
|
|
if 'windows_only' in item.keywords and platform.system() != 'Windows': |
46
|
|
|
pytest.skip("test can only be run on Windows") |
47
|
|
|
|
48
|
|
|
|
49
|
|
|
@pytest.fixture |
50
|
|
|
def path(tmpdir): |
51
|
|
|
"""Figure to create a temporary settings file path.""" |
52
|
|
|
tmpdir.chdir() |
53
|
|
|
return tmpdir.join('custom.ext').strpath |
54
|
|
|
|