From 55338af8df750048d7d220d0ff41294382b7676e Mon Sep 17 00:00:00 2001 From: Pedro Brochado Date: Fri, 27 Sep 2024 18:21:26 -0300 Subject: [PATCH 1/2] Change error message to clearly relate it to pytest-timeout --- pytest_timeout.py | 2 +- test_pytest_timeout.py | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pytest_timeout.py b/pytest_timeout.py index de4878a..64c6286 100644 --- a/pytest_timeout.py +++ b/pytest_timeout.py @@ -495,7 +495,7 @@ def timeout_sigalrm(item, settings): dump_stacks(terminal) if nthreads > 1: terminal.sep("+", title="Timeout") - pytest.fail("Timeout >%ss" % settings.timeout) + pytest.fail("Timeout (>%ss) from pytest-timeout plugin." % settings.timeout) def timeout_timer(item, settings): diff --git a/test_pytest_timeout.py b/test_pytest_timeout.py index e768d72..35c3069 100644 --- a/test_pytest_timeout.py +++ b/test_pytest_timeout.py @@ -44,7 +44,7 @@ def test_foo(): """ ) result = pytester.runpytest_subprocess("--timeout=1") - result.stdout.fnmatch_lines(["*Failed: Timeout >1.0s*"]) + result.stdout.fnmatch_lines(["*Failed: Timeout (>1.0s) from pytest-timeout plugin.*"]) def test_thread(pytester): @@ -239,7 +239,7 @@ def test_foo(): """ ) result = pytester.runpytest_subprocess() - result.stdout.fnmatch_lines(["*Failed: Timeout >1.0s*"]) + result.stdout.fnmatch_lines(["*Failed: Timeout (>1.0s) from pytest-timeout plugin.*"]) def test_timeout_mark_timer(pytester): @@ -480,7 +480,7 @@ def test_foo(): result = child.read().decode().lower() if child.isalive(): child.terminate(force=True) - assert "timeout >1.0s" not in result + assert "timeout (>1.0s)" not in result assert "fail" not in result @@ -524,7 +524,7 @@ def test_foo(): result = child.read().decode().lower() if child.isalive(): child.terminate(force=True) - assert "timeout >1.0s" in result + assert "timeout (>1.0s)" in result assert "fail" in result From 9952bd7d621862445d3c00373a91f545e16d41e2 Mon Sep 17 00:00:00 2001 From: Pedro Brochado Date: Wed, 9 Oct 2024 11:58:01 -0300 Subject: [PATCH 2/2] Fixup: extract msg to constant and remove 'plugin' word As suggested, removed the unecessary 'plugin' word. Also, extracted the message to a constant. --- pytest_timeout.py | 4 ++-- test_pytest_timeout.py | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/pytest_timeout.py b/pytest_timeout.py index 64c6286..1383d1a 100644 --- a/pytest_timeout.py +++ b/pytest_timeout.py @@ -21,7 +21,7 @@ __all__ = ("is_debugging", "Settings") SESSION_TIMEOUT_KEY = pytest.StashKey[float]() SESSION_EXPIRE_KEY = pytest.StashKey[float]() - +PYTEST_FAILURE_MESSAGE = "Timeout (>%ss) from pytest-timeout." HAVE_SIGALRM = hasattr(signal, "SIGALRM") if HAVE_SIGALRM: @@ -495,7 +495,7 @@ def timeout_sigalrm(item, settings): dump_stacks(terminal) if nthreads > 1: terminal.sep("+", title="Timeout") - pytest.fail("Timeout (>%ss) from pytest-timeout plugin." % settings.timeout) + pytest.fail(PYTEST_FAILURE_MESSAGE % settings.timeout) def timeout_timer(item, settings): diff --git a/test_pytest_timeout.py b/test_pytest_timeout.py index 35c3069..78eb662 100644 --- a/test_pytest_timeout.py +++ b/test_pytest_timeout.py @@ -5,7 +5,10 @@ import pexpect import pytest +from pytest_timeout import PYTEST_FAILURE_MESSAGE + +MATCH_FAILURE_MESSAGE = f"*Failed: {PYTEST_FAILURE_MESSAGE}*" pytest_plugins = "pytester" have_sigalrm = pytest.mark.skipif( @@ -44,7 +47,7 @@ def test_foo(): """ ) result = pytester.runpytest_subprocess("--timeout=1") - result.stdout.fnmatch_lines(["*Failed: Timeout (>1.0s) from pytest-timeout plugin.*"]) + result.stdout.fnmatch_lines([MATCH_FAILURE_MESSAGE % "1.0"]) def test_thread(pytester): @@ -239,7 +242,7 @@ def test_foo(): """ ) result = pytester.runpytest_subprocess() - result.stdout.fnmatch_lines(["*Failed: Timeout (>1.0s) from pytest-timeout plugin.*"]) + result.stdout.fnmatch_lines([MATCH_FAILURE_MESSAGE % "1.0"]) def test_timeout_mark_timer(pytester):