Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7396ffb7e8 | ||
|
|
fbfe3b9a91 | ||
|
|
075a74202b | ||
|
|
b8e1e63c7a | ||
|
|
bc0866f216 | ||
|
|
b25757199c | ||
|
|
77a1db27cd | ||
|
|
f5021313ec | ||
|
|
925829cb72 | ||
|
|
311cbfabfb | ||
|
|
59caed8e2f |
@@ -1,3 +1,18 @@
|
|||||||
|
pytest-xdist 1.33.0 (2020-07-09)
|
||||||
|
================================
|
||||||
|
|
||||||
|
Features
|
||||||
|
--------
|
||||||
|
|
||||||
|
- `#554 <https://github.com/pytest-dev/pytest-xdist/issues/554>`_: Fix warnings support for upcoming pytest 6.0.
|
||||||
|
|
||||||
|
|
||||||
|
Trivial Changes
|
||||||
|
---------------
|
||||||
|
|
||||||
|
- `#548 <https://github.com/pytest-dev/pytest-xdist/issues/548>`_: SCM and CI files are no longer included in the source distribution.
|
||||||
|
|
||||||
|
|
||||||
pytest-xdist 1.32.0 (2020-05-03)
|
pytest-xdist 1.32.0 (2020-05-03)
|
||||||
================================
|
================================
|
||||||
|
|
||||||
|
|||||||
5
MANIFEST.in
Normal file
5
MANIFEST.in
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
exclude .appveyor.yml
|
||||||
|
exclude .gitignore
|
||||||
|
exclude .pre-commit-config.yaml
|
||||||
|
exclude .travis.yml
|
||||||
|
prune .github
|
||||||
@@ -277,10 +277,17 @@ class DSession(object):
|
|||||||
self.config.hook.pytest_logwarning.call_historic(kwargs=kwargs)
|
self.config.hook.pytest_logwarning.call_historic(kwargs=kwargs)
|
||||||
|
|
||||||
def worker_warning_captured(self, warning_message, when, item):
|
def worker_warning_captured(self, warning_message, when, item):
|
||||||
"""Emitted when a node calls the pytest_logwarning hook."""
|
"""Emitted when a node calls the pytest_warning_captured hook (deprecated in 6.0)."""
|
||||||
kwargs = dict(warning_message=warning_message, when=when, item=item)
|
kwargs = dict(warning_message=warning_message, when=when, item=item)
|
||||||
self.config.hook.pytest_warning_captured.call_historic(kwargs=kwargs)
|
self.config.hook.pytest_warning_captured.call_historic(kwargs=kwargs)
|
||||||
|
|
||||||
|
def worker_warning_recorded(self, warning_message, when, nodeid, location):
|
||||||
|
"""Emitted when a node calls the pytest_warning_recorded hook."""
|
||||||
|
kwargs = dict(
|
||||||
|
warning_message=warning_message, when=when, nodeid=nodeid, location=location
|
||||||
|
)
|
||||||
|
self.config.hook.pytest_warning_recorded.call_historic(kwargs=kwargs)
|
||||||
|
|
||||||
def _clone_node(self, node):
|
def _clone_node(self, node):
|
||||||
"""Return new node based on an existing one.
|
"""Return new node based on an existing one.
|
||||||
|
|
||||||
|
|||||||
@@ -151,6 +151,18 @@ class WorkerInteractor(object):
|
|||||||
item=None,
|
item=None,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# the pytest_warning_recorded hook was introduced in pytest 6.0
|
||||||
|
if hasattr(_pytest.hookspec, "pytest_warning_recorded"):
|
||||||
|
|
||||||
|
def pytest_warning_recorded(self, warning_message, when, nodeid, location):
|
||||||
|
self.sendevent(
|
||||||
|
"warning_recorded",
|
||||||
|
warning_message_data=serialize_warning_message(warning_message),
|
||||||
|
when=when,
|
||||||
|
nodeid=nodeid,
|
||||||
|
location=location,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def serialize_warning_message(warning_message):
|
def serialize_warning_message(warning_message):
|
||||||
if isinstance(warning_message.message, Warning):
|
if isinstance(warning_message.message, Warning):
|
||||||
|
|||||||
@@ -63,10 +63,7 @@ class NodeManager(object):
|
|||||||
def setup_nodes(self, putevent):
|
def setup_nodes(self, putevent):
|
||||||
self.config.hook.pytest_xdist_setupnodes(config=self.config, specs=self.specs)
|
self.config.hook.pytest_xdist_setupnodes(config=self.config, specs=self.specs)
|
||||||
self.trace("setting up nodes")
|
self.trace("setting up nodes")
|
||||||
nodes = []
|
return [self.setup_node(spec, putevent) for spec in self.specs]
|
||||||
for spec in self.specs:
|
|
||||||
nodes.append(self.setup_node(spec, putevent))
|
|
||||||
return nodes
|
|
||||||
|
|
||||||
def setup_node(self, spec, putevent):
|
def setup_node(self, spec, putevent):
|
||||||
gw = self.group.makegateway(spec)
|
gw = self.group.makegateway(spec)
|
||||||
@@ -158,11 +155,10 @@ class HostRSync(execnet.RSync):
|
|||||||
|
|
||||||
def __init__(self, sourcedir, *args, **kwargs):
|
def __init__(self, sourcedir, *args, **kwargs):
|
||||||
self._synced = {}
|
self._synced = {}
|
||||||
self._ignores = []
|
|
||||||
ignores = kwargs.pop("ignores", None) or []
|
ignores = kwargs.pop("ignores", None) or []
|
||||||
for x in ignores:
|
self._ignores = [
|
||||||
x = getattr(x, "strpath", x)
|
re.compile(fnmatch.translate(getattr(x, "strpath", x))) for x in ignores
|
||||||
self._ignores.append(re.compile(fnmatch.translate(x)))
|
]
|
||||||
super(HostRSync, self).__init__(sourcedir=sourcedir, **kwargs)
|
super(HostRSync, self).__init__(sourcedir=sourcedir, **kwargs)
|
||||||
|
|
||||||
def filter(self, path):
|
def filter(self, path):
|
||||||
@@ -363,6 +359,17 @@ class WorkerController(object):
|
|||||||
when=kwargs["when"],
|
when=kwargs["when"],
|
||||||
item=kwargs["item"],
|
item=kwargs["item"],
|
||||||
)
|
)
|
||||||
|
elif eventname == "warning_recorded":
|
||||||
|
warning_message = unserialize_warning_message(
|
||||||
|
kwargs["warning_message_data"]
|
||||||
|
)
|
||||||
|
self.notify_inproc(
|
||||||
|
eventname,
|
||||||
|
warning_message=warning_message,
|
||||||
|
when=kwargs["when"],
|
||||||
|
nodeid=kwargs["nodeid"],
|
||||||
|
location=kwargs["location"],
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
raise ValueError("unknown event: {}".format(eventname))
|
raise ValueError("unknown event: {}".format(eventname))
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
|
|||||||
@@ -22,12 +22,16 @@ def _divert_atexit(request, monkeypatch):
|
|||||||
|
|
||||||
finalizers = []
|
finalizers = []
|
||||||
|
|
||||||
def finish():
|
def fake_register(func, *args, **kwargs):
|
||||||
while finalizers:
|
finalizers.append((func, args, kwargs))
|
||||||
finalizers.pop()()
|
|
||||||
|
|
||||||
monkeypatch.setattr(atexit, "register", finalizers.append)
|
monkeypatch.setattr(atexit, "register", fake_register)
|
||||||
request.addfinalizer(finish)
|
|
||||||
|
yield
|
||||||
|
|
||||||
|
while finalizers:
|
||||||
|
func, args, kwargs = finalizers.pop()
|
||||||
|
func(*args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
def pytest_addoption(parser):
|
def pytest_addoption(parser):
|
||||||
|
|||||||
Reference in New Issue
Block a user