tractor/tests/conftest.py

48 lines
1.3 KiB
Python
Raw Normal View History

2018-07-11 23:25:30 +00:00
"""
``tractor`` testing!!
"""
import random
import platform
2018-07-11 23:25:30 +00:00
import pytest
import tractor
from tractor.testing import tractor_test
2018-07-11 23:25:30 +00:00
pytest_plugins = ['pytester']
_arb_addr = '127.0.0.1', random.randint(1000, 9999)
2018-07-11 23:25:30 +00:00
def pytest_addoption(parser):
parser.addoption("--ll", action="store", dest='loglevel',
default=None, help="logging level to set when testing")
@pytest.fixture(scope='session', autouse=True)
def loglevel(request):
2018-07-14 20:09:05 +00:00
orig = tractor.log._default_loglevel
level = tractor.log._default_loglevel = request.config.option.loglevel
2018-07-11 23:25:30 +00:00
yield level
2018-07-14 20:09:05 +00:00
tractor.log._default_loglevel = orig
@pytest.fixture(scope='session')
def arb_addr():
return _arb_addr
2019-03-06 05:36:37 +00:00
def pytest_generate_tests(metafunc):
2019-03-09 01:06:16 +00:00
if 'start_method' in metafunc.fixturenames:
2019-03-06 05:36:37 +00:00
from multiprocessing import get_all_start_methods
methods = get_all_start_methods()
if platform.system() != "Windows":
methods = ['trio_run_in_process']
if 'fork' in methods: # fork not available on windows, so check before removing
# XXX: the fork method is in general incompatible with
# trio's global scheduler state
methods.remove('fork')
2019-03-09 01:06:16 +00:00
metafunc.parametrize("start_method", methods, scope='module')