You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
2 years ago
|
# XX this does not belong here -- b/c it's here, these things only apply to
|
||
|
# the tests in trio/_core/tests, not in trio/tests. For now there's some
|
||
|
# copy-paste...
|
||
|
#
|
||
|
# this stuff should become a proper pytest plugin
|
||
|
|
||
|
import pytest
|
||
|
import inspect
|
||
|
|
||
|
from ..testing import trio_test, MockClock
|
||
|
|
||
|
RUN_SLOW = True
|
||
|
|
||
|
|
||
|
def pytest_addoption(parser):
|
||
|
parser.addoption("--run-slow", action="store_true", help="run slow tests")
|
||
|
|
||
|
|
||
|
def pytest_configure(config):
|
||
|
global RUN_SLOW
|
||
|
RUN_SLOW = config.getoption("--run-slow", True)
|
||
|
|
||
|
|
||
|
@pytest.fixture
|
||
|
def mock_clock():
|
||
|
return MockClock()
|
||
|
|
||
|
|
||
|
@pytest.fixture
|
||
|
def autojump_clock():
|
||
|
return MockClock(autojump_threshold=0)
|
||
|
|
||
|
|
||
|
# FIXME: split off into a package (or just make part of Trio's public
|
||
|
# interface?), with config file to enable? and I guess a mark option too; I
|
||
|
# guess it's useful with the class- and file-level marking machinery (where
|
||
|
# the raw @trio_test decorator isn't enough).
|
||
|
@pytest.hookimpl(tryfirst=True)
|
||
|
def pytest_pyfunc_call(pyfuncitem):
|
||
|
if inspect.iscoroutinefunction(pyfuncitem.obj):
|
||
|
pyfuncitem.obj = trio_test(pyfuncitem.obj)
|