/
conftest.py
91 lines (64 loc) · 2.38 KB
/
conftest.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import re
import sys
import warnings
import hypothesis
import pytest
import diofant
collect_ignore = ["setup.py"]
sp = re.compile(r'([0-9]+)/([1-9][0-9]*)')
hypothesis.settings.register_profile("default",
hypothesis.settings(max_examples=100))
hypothesis.settings.register_profile("debug",
hypothesis.settings(max_examples=100,
verbosity=hypothesis.Verbosity.verbose))
def process_split(session, config, items):
split = config.getoption("--split")
if not split:
return
m = sp.match(split)
if not m:
raise ValueError("split must be a string of the form a/b "
"where a and b are ints.")
i, t = map(int, m.groups())
start, end = (i - 1)*len(items)//t, i*len(items)//t
if i < t:
del items[end:]
del items[:start]
def pytest_report_header(config):
return """
cache: %s
ground types: %s
""" % (diofant.core.cache.USE_CACHE, diofant.core.compatibility.GROUND_TYPES)
def pytest_addoption(parser):
parser.addoption("--split", action="store", default="", help="split tests")
def pytest_collection_modifyitems(session, config, items):
process_split(session, config, items)
@pytest.fixture(autouse=True, scope='module')
def file_clear_cache():
diofant.core.cache.clear_cache()
@pytest.fixture(autouse=True, scope='module')
def check_disabled(request):
if getattr(request.module, 'disabled', False):
pytest.skip("test requirements not met.")
@pytest.fixture(autouse=True, scope='session')
def set_displayhook():
sys.__displayhook__ = sys.displayhook # https://bugs.python.org/26092
@pytest.fixture(autouse=True, scope='session')
def enable_deprecationwarnings():
warnings.simplefilter('error', DeprecationWarning)
@pytest.fixture(autouse=True, scope='session')
def enable_mpl_agg_backend():
try:
import matplotlib as mpl
mpl.use('Agg')
del mpl
except ImportError:
pass
@pytest.fixture(autouse=True)
def add_np(doctest_namespace):
for sym in (diofant.symbols('a b c d x y z t') +
diofant.symbols('k m n', integer=True) +
diofant.symbols('f g h', cls=diofant.Function)):
doctest_namespace[str(sym)] = sym
for name in dir(diofant):
doctest_namespace[name] = getattr(diofant, name)