conftest: add uses_pexpect mark

This commit is contained in:
Daniel Hahler 2019-05-27 03:20:58 +02:00
parent bce45052a6
commit 0025e4408f
2 changed files with 11 additions and 4 deletions

View File

@ -11,9 +11,10 @@ def pytest_collection_modifyitems(config, items):
"""
fast_items = []
slow_items = []
slowest_items = []
neutral_items = []
slow_fixturenames = ("testdir",)
spawn_names = {"spawn_pytest", "spawn"}
for item in items:
try:
@ -23,12 +24,16 @@ def pytest_collection_modifyitems(config, items):
# (https://github.com/pytest-dev/pytest/issues/5070)
neutral_items.append(item)
else:
if any(x for x in fixtures if x in slow_fixturenames):
slow_items.append(item)
if "testdir" in fixtures:
if spawn_names.intersection(item.function.__code__.co_names):
item.add_marker(pytest.mark.uses_pexpect)
slow_items.append(item)
else:
slowest_items.append(0)
else:
marker = item.get_closest_marker("slow")
if marker:
slow_items.append(item)
slowest_items.append(item)
else:
fast_items.append(item)

View File

@ -175,6 +175,8 @@ markers =
baz
# conftest.py reorders tests moving slow ones to the end of the list
slow
# experimental mark for all tests using pexpect
uses_pexpect
[flake8]
max-line-length = 120