From fd66e1513d7ad2139721533ecfc9d3936b8c2c09 Mon Sep 17 00:00:00 2001 From: zxyasfas <138371657+zxyasfas@users.noreply.github.com> Date: Wed, 29 Jul 2026 15:12:19 +0800 Subject: [PATCH] declare timeout ini options as float --- pytest_timeout.py | 4 ++-- setup.cfg | 2 +- test_pytest_timeout.py | 25 +++++++++++++++++++++++++ 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/pytest_timeout.py b/pytest_timeout.py index 2fe48b3..aba2566 100644 --- a/pytest_timeout.py +++ b/pytest_timeout.py @@ -93,7 +93,7 @@ def pytest_addoption(parser): metavar="SECONDS", help=SESSION_TIMEOUT_DESC, ) - parser.addini("timeout", TIMEOUT_DESC) + parser.addini("timeout", TIMEOUT_DESC, type="float") parser.addini("timeout_method", METHOD_DESC) parser.addini("timeout_func_only", FUNC_ONLY_DESC, type="bool", default=False) parser.addini( @@ -102,7 +102,7 @@ def pytest_addoption(parser): type="bool", default=False, ) - parser.addini("session_timeout", SESSION_TIMEOUT_DESC) + parser.addini("session_timeout", SESSION_TIMEOUT_DESC, type="float") class TimeoutHooks: diff --git a/setup.cfg b/setup.cfg index b634af8..56569ff 100644 --- a/setup.cfg +++ b/setup.cfg @@ -32,7 +32,7 @@ classifiers = [options] py_modules = pytest_timeout install_requires = - pytest>=8.0.0 + pytest>=8.4.0 python_requires = >=3.10 [options.entry_points] diff --git a/test_pytest_timeout.py b/test_pytest_timeout.py index 5376891..6b5280a 100644 --- a/test_pytest_timeout.py +++ b/test_pytest_timeout.py @@ -347,6 +347,31 @@ def test_foo(): assert result.ret +@pytest.mark.skipif( + pytest.version_tuple < (9, 0), + reason="native [tool.pytest] table requires pytest 9", +) +def test_pyproject_toml_int_timeout(pytester): + pytester.makepyfile( + """ + import time + + def test_foo(): + time.sleep(2) + """ + ) + pytester.makepyprojecttoml( + """ + [tool.pytest] + timeout = 1 + session_timeout = 60 + """ + ) + result = pytester.runpytest_subprocess() + result.stdout.no_fnmatch_line("INTERNALERROR*") + assert result.ret + + def test_ini_timeout_func_only(pytester): pytester.makepyfile( """