Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 22 additions & 8 deletions test_pytest_timeout.py
Original file line number Diff line number Diff line change
Expand Up @@ -621,25 +621,39 @@ def custom_trace(*args):


def test_not_main_thread(pytester):
pytest.skip("The 'pytest_timeout.timeout_setup' function no longer exists")
pytester.makepyfile(
pytester.makeconftest(
"""
import threading

import pytest
import pytest_timeout

current_timeout_setup = pytest_timeout.timeout_setup

def new_timeout_setup(item):
threading.Thread(
target=current_timeout_setup, args=(item),
).join()
@pytest.hookimpl(tryfirst=True)
def pytest_timeout_set_timer(item, settings):
errors = []

pytest_timeout.timeout_setup = new_timeout_setup
def set_timer():
try:
pytest_timeout.pytest_timeout_set_timer(item, settings)
except BaseException as exc:
errors.append(exc)

thread = threading.Thread(target=set_timer)
thread.start()
thread.join()
if errors:
raise errors[0]
return True
"""
)
pytester.makepyfile(
"""
def test_x(): pass
"""
)
result = pytester.runpytest_subprocess("--timeout=1")
result.assert_outcomes(passed=1)
result.stdout.fnmatch_lines(
["timeout: 1.0s", "timeout method:*", "timeout func_only:*"]
)
Expand Down
Loading