Hello community,
here is the log from the commit of package python-pytest-timeout for
openSUSE:Factory checked in at 2020-11-09 13:56:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pytest-timeout (Old)
and /work/SRC/openSUSE:Factory/.python-pytest-timeout.new.11331 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pytest-timeout"
Mon Nov 9 13:56:22 2020 rev:10 rq:846349 version:1.4.2
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-pytest-timeout/python-pytest-timeout.changes
2020-06-30 21:54:40.050425099 +0200
+++
/work/SRC/openSUSE:Factory/.python-pytest-timeout.new.11331/python-pytest-timeout.changes
2020-11-09 13:56:49.088041741 +0100
@@ -1,0 +2,6 @@
+Thu Nov 5 14:37:31 UTC 2020 - Marketa Machova <[email protected]>
+
+- Update to 1.4.2
+ * Fix is_debugging function
+
+-------------------------------------------------------------------
Old:
----
pytest-timeout-1.4.1.tar.gz
New:
----
pytest-timeout-1.4.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pytest-timeout.spec ++++++
--- /var/tmp/diff_new_pack.XFiPxo/_old 2020-11-09 13:56:50.336039019 +0100
+++ /var/tmp/diff_new_pack.XFiPxo/_new 2020-11-09 13:56:50.336039019 +0100
@@ -18,7 +18,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-pytest-timeout
-Version: 1.4.1
+Version: 1.4.2
Release: 0
Summary: Pytest plugin to abort hanging tests
License: MIT
++++++ pytest-timeout-1.4.1.tar.gz -> pytest-timeout-1.4.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-timeout-1.4.1/PKG-INFO
new/pytest-timeout-1.4.2/PKG-INFO
--- old/pytest-timeout-1.4.1/PKG-INFO 2020-06-15 21:23:07.425450000 +0200
+++ new/pytest-timeout-1.4.2/PKG-INFO 2020-07-15 21:25:23.076116000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: pytest-timeout
-Version: 1.4.1
+Version: 1.4.2
Summary: py.test plugin to abort hanging tests
Home-page: http://github.com/pytest-dev/pytest-timeout/
Author: Floris Bruynooghe
@@ -209,6 +209,13 @@
Changelog
=========
+ 1.4.2
+ -----
+
+ - Fix compatibility when run with pytest pre-releases, thanks
+ Bruno Oliveira,
+ - Fix detection of third-party debuggers, thanks Bruno Oliveira.
+
1.4.1
-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-timeout-1.4.1/README.rst
new/pytest-timeout-1.4.2/README.rst
--- old/pytest-timeout-1.4.1/README.rst 2020-06-15 21:03:43.000000000 +0200
+++ new/pytest-timeout-1.4.2/README.rst 2020-07-15 21:24:43.000000000 +0200
@@ -201,6 +201,13 @@
Changelog
=========
+1.4.2
+-----
+
+- Fix compatibility when run with pytest pre-releases, thanks
+ Bruno Oliveira,
+- Fix detection of third-party debuggers, thanks Bruno Oliveira.
+
1.4.1
-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/pytest-timeout-1.4.1/pytest_timeout.egg-info/PKG-INFO
new/pytest-timeout-1.4.2/pytest_timeout.egg-info/PKG-INFO
--- old/pytest-timeout-1.4.1/pytest_timeout.egg-info/PKG-INFO 2020-06-15
21:23:07.000000000 +0200
+++ new/pytest-timeout-1.4.2/pytest_timeout.egg-info/PKG-INFO 2020-07-15
21:25:23.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: pytest-timeout
-Version: 1.4.1
+Version: 1.4.2
Summary: py.test plugin to abort hanging tests
Home-page: http://github.com/pytest-dev/pytest-timeout/
Author: Floris Bruynooghe
@@ -209,6 +209,13 @@
Changelog
=========
+ 1.4.2
+ -----
+
+ - Fix compatibility when run with pytest pre-releases, thanks
+ Bruno Oliveira,
+ - Fix detection of third-party debuggers, thanks Bruno Oliveira.
+
1.4.1
-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-timeout-1.4.1/pytest_timeout.py
new/pytest-timeout-1.4.2/pytest_timeout.py
--- old/pytest-timeout-1.4.1/pytest_timeout.py 2020-06-15 21:19:03.000000000
+0200
+++ new/pytest-timeout-1.4.2/pytest_timeout.py 2020-07-15 21:20:47.000000000
+0200
@@ -13,7 +13,7 @@
import threading
import traceback
from collections import namedtuple
-from distutils.version import StrictVersion
+from distutils.version import LooseVersion
import py
import pytest
@@ -156,7 +156,7 @@
SUPPRESS_TIMEOUT = True
-def is_debugging():
+def is_debugging(trace_func=None):
"""Detect if a debugging session is in progress.
This looks at both pytest's builtin pdb support as well as
@@ -168,14 +168,19 @@
1. Examines the trace function to see if the module it originates
from is in KNOWN_DEBUGGING_MODULES.
2. Check is SUPPRESS_TIMEOUT is set to True.
+
+ :param trace_func: the current trace function, if not given will use
+ sys.gettrace(). Used to unit-test this function.
"""
global SUPPRESS_TIMEOUT, KNOWN_DEBUGGING_MODULES
if SUPPRESS_TIMEOUT:
return True
- trace_func = sys.gettrace()
+ if trace_func is None:
+ trace_func = sys.gettrace()
if trace_func and inspect.getmodule(trace_func):
+ parts = inspect.getmodule(trace_func).__name__.split(".")
for name in KNOWN_DEBUGGING_MODULES:
- if name in inspect.getmodule(trace_func):
+ if name in parts:
return True
return False
@@ -381,8 +386,8 @@
try:
capman = item.config.pluginmanager.getplugin("capturemanager")
if capman:
- pytest_version = StrictVersion(pytest.__version__)
- if pytest_version >= StrictVersion("3.7.3"):
+ pytest_version = LooseVersion(pytest.__version__)
+ if pytest_version >= LooseVersion("3.7.3"):
capman.suspend_global_capture(item)
stdout, stderr = capman.read_global_capture()
else:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-timeout-1.4.1/setup.py
new/pytest-timeout-1.4.2/setup.py
--- old/pytest-timeout-1.4.1/setup.py 2020-06-15 21:22:37.000000000 +0200
+++ new/pytest-timeout-1.4.2/setup.py 2020-07-15 21:24:51.000000000 +0200
@@ -11,7 +11,7 @@
name="pytest-timeout",
description="py.test plugin to abort hanging tests",
long_description=long_description,
- version="1.4.1",
+ version="1.4.2",
author="Floris Bruynooghe",
author_email="[email protected]",
url="http://github.com/pytest-dev/pytest-timeout/",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-timeout-1.4.1/test_pytest_timeout.py
new/pytest-timeout-1.4.2/test_pytest_timeout.py
--- old/pytest-timeout-1.4.1/test_pytest_timeout.py 2020-06-15
21:19:02.000000000 +0200
+++ new/pytest-timeout-1.4.2/test_pytest_timeout.py 2020-07-15
21:20:47.000000000 +0200
@@ -31,9 +31,9 @@
def test_x(): pass
"""
)
- result = testdir.runpytest("--timeout=1")
+ result = testdir.runpytest("--timeout=0.01")
result.stdout.fnmatch_lines(
- ["timeout: 1.0s", "timeout method:*", "timeout func_only:*"]
+ ["timeout: 0.01s", "timeout method:*", "timeout func_only:*"]
)
@@ -47,8 +47,8 @@
time.sleep(2)
"""
)
- result = testdir.runpytest("--timeout=1.5")
- result.stdout.fnmatch_lines(["*Failed: Timeout >1.5s*"])
+ result = testdir.runpytest("--timeout=0.01")
+ result.stdout.fnmatch_lines(["*Failed: Timeout >0.01s*"])
def test_thread(testdir):
@@ -60,7 +60,7 @@
time.sleep(2)
"""
)
- result = testdir.runpytest("--timeout=1", "--timeout-method=thread")
+ result = testdir.runpytest("--timeout=0.01", "--timeout-method=thread")
result.stderr.fnmatch_lines(
[
"*++ Timeout ++*",
@@ -86,7 +86,7 @@
"""
)
result = testdir.runpytest(
- "--timeout=1", "--cov=test_cov.py", "--timeout-method=thread"
+ "--timeout=0.01", "--cov=test_cov.py", "--timeout-method=thread"
)
result.stderr.fnmatch_lines(
[
@@ -108,7 +108,7 @@
time.sleep(2)
"""
)
- monkeypatch.setitem(os.environ, "PYTEST_TIMEOUT", "1")
+ monkeypatch.setitem(os.environ, "PYTEST_TIMEOUT", "0.01")
result = testdir.runpytest()
assert result.ret > 0
@@ -150,7 +150,7 @@
scope=scope
)
)
- result = testdir.runpytest("--timeout=1",
"--timeout-method={}".format(meth))
+ result = testdir.runpytest("--timeout=0.01",
"--timeout-method={}".format(meth))
assert result.ret > 0
assert "Timeout" in result.stdout.str() + result.stderr.str()
@@ -164,14 +164,14 @@
@pytest.fixture
def fix(self):
- time.sleep(2)
+ time.sleep(0.1)
@pytest.mark.timeout(func_only=True)
def test_foo(self, fix):
pass
"""
)
- result = testdir.runpytest("--timeout=1")
+ result = testdir.runpytest("--timeout=0.01")
assert result.ret == 0
assert "Timeout" not in result.stdout.str() + result.stderr.str()
@@ -197,7 +197,9 @@
pass
"""
)
- result = testdir.runpytest("--timeout=1", "-s",
"--timeout-method={}".format(meth))
+ result = testdir.runpytest(
+ "--timeout=0.01", "-s", "--timeout-method={}".format(meth)
+ )
assert result.ret > 0
assert "Timeout" in result.stdout.str() + result.stderr.str()
@@ -214,7 +216,7 @@
print('fix setup')
def fin():
print('fix finaliser')
- time.sleep(2)
+ time.sleep(0.1)
request.addfinalizer(fin)
@pytest.mark.timeout(func_only=True)
@@ -222,7 +224,7 @@
pass
"""
)
- result = testdir.runpytest("--timeout=1", "-s")
+ result = testdir.runpytest("--timeout=0.01", "-s")
assert result.ret == 0
assert "Timeout" not in result.stdout.str() + result.stderr.str()
@@ -233,14 +235,14 @@
"""
import time, pytest
- @pytest.mark.timeout(1)
+ @pytest.mark.timeout(0.01)
def test_foo():
time.sleep(2)
assert False
"""
)
result = testdir.runpytest()
- result.stdout.fnmatch_lines(["*Failed: Timeout >1.0s*"])
+ result.stdout.fnmatch_lines(["*Failed: Timeout >0.01s*"])
def test_timeout_mark_timer(testdir):
@@ -248,7 +250,7 @@
"""
import time, pytest
- @pytest.mark.timeout(1)
+ @pytest.mark.timeout(0.01)
def test_foo():
time.sleep(2)
"""
@@ -262,7 +264,7 @@
"""
import time, pytest
- @pytest.mark.timeout(0.5)
+ @pytest.mark.timeout(0.01)
def test_foo():
time.sleep(1)
"""
@@ -304,7 +306,7 @@
"""
import time, pytest
- @pytest.mark.timeout(1, 'thread')
+ @pytest.mark.timeout(0.01, 'thread')
def test_foo():
time.sleep(2)
"""
@@ -339,7 +341,7 @@
testdir.makeini(
"""
[pytest]
- timeout = 1.5
+ timeout = 0.01
"""
)
result = testdir.runpytest()
@@ -353,7 +355,7 @@
@pytest.fixture
def slow():
- time.sleep(2)
+ time.sleep(0.1)
def test_foo(slow):
pass
@@ -362,7 +364,7 @@
testdir.makeini(
"""
[pytest]
- timeout = 1.5
+ timeout = 0.01
timeout_func_only = true
"""
)
@@ -382,7 +384,7 @@
testdir.makeini(
"""
[pytest]
- timeout = 1
+ timeout = 0.01
timeout_method = thread
"""
)
@@ -395,19 +397,18 @@
"""
import time, pytest
- @pytest.mark.timeout(timeout=2)
+ @pytest.mark.timeout(timeout=0.05)
class TestFoo:
- @pytest.mark.timeout(timeout=3)
+ @pytest.mark.timeout(timeout=0.5)
def test_foo_2(self):
- time.sleep(2)
+ time.sleep(0.1)
- @pytest.mark.timeout(timeout=3)
def test_foo_1(self):
- time.sleep(1)
+ time.sleep(0.01)
"""
)
- result = testdir.runpytest("--timeout=1", "-s")
+ result = testdir.runpytest("--timeout=0.01", "-s")
assert result.ret == 0
assert "Timeout" not in result.stdout.str() + result.stderr.str()
@@ -444,7 +445,7 @@
"""
import pytest, {debugging_module}
- @pytest.mark.timeout(1)
+ @pytest.mark.timeout(0.1)
def test_foo():
{debugging_module}.{debugging_set_trace}
""".format(
@@ -453,11 +454,32 @@
)
child = testdir.spawn_pytest(str(p1))
child.expect("test_foo")
- time.sleep(2)
+ time.sleep(0.2)
child.send("c\n")
child.sendeof()
result = child.read().decode().lower()
if child.isalive():
child.terminate(force=True)
- assert "timeout >1.0s" not in result
+ assert "timeout >0.01s" not in result
assert "fail" not in result
+
+
+def test_is_debugging(monkeypatch):
+ import pytest_timeout
+
+ assert not pytest_timeout.is_debugging()
+
+ # create a fake module named "custom.pydevd" with a trace function on it
+ from types import ModuleType
+
+ module_name = "custom.pydevd"
+ module = ModuleType(module_name)
+ monkeypatch.setitem(sys.modules, module_name, module)
+
+ def custom_trace(*args):
+ pass
+
+ custom_trace.__module__ = module_name
+ module.custom_trace = custom_trace
+
+ assert pytest_timeout.is_debugging(custom_trace)