Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-pytest-xdist for
openSUSE:Factory checked in at 2021-02-04 20:23:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pytest-xdist (Old)
and /work/SRC/openSUSE:Factory/.python-pytest-xdist.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pytest-xdist"
Thu Feb 4 20:23:28 2021 rev:17 rq:868934 version:2.2.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pytest-xdist/python-pytest-xdist.changes
2020-10-29 09:47:55.980147470 +0100
+++
/work/SRC/openSUSE:Factory/.python-pytest-xdist.new.28504/python-pytest-xdist.changes
2021-02-04 20:24:11.670837254 +0100
@@ -1,0 +2,6 @@
+Tue Feb 2 09:53:19 UTC 2021 - Dirk M??ller <[email protected]>
+
+- update to 2.2.0:
+ * Internal errors in workers are now propagated to the master node.
+
+-------------------------------------------------------------------
Old:
----
pytest-xdist-2.1.0.tar.gz
New:
----
pytest-xdist-2.2.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pytest-xdist.spec ++++++
--- /var/tmp/diff_new_pack.so4jPG/_old 2021-02-04 20:24:12.178838027 +0100
+++ /var/tmp/diff_new_pack.so4jPG/_new 2021-02-04 20:24:12.178838027 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-pytest-xdist
#
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
Name: python-pytest-xdist
-Version: 2.1.0
+Version: 2.2.0
Release: 0
Summary: Distributed testing and loop-on-failing for py.test
License: MIT
++++++ pytest-xdist-2.1.0.tar.gz -> pytest-xdist-2.2.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-xdist-2.1.0/CHANGELOG.rst
new/pytest-xdist-2.2.0/CHANGELOG.rst
--- old/pytest-xdist-2.1.0/CHANGELOG.rst 2020-08-25 14:38:13.000000000
+0200
+++ new/pytest-xdist-2.2.0/CHANGELOG.rst 2020-12-14 13:15:14.000000000
+0100
@@ -1,3 +1,12 @@
+pytest-xdist 2.2.0 (2020-12-14)
+===============================
+
+Features
+--------
+
+- `#608 <https://github.com/pytest-dev/pytest-xdist/issues/608>`_: Internal
errors in workers are now propagated to the master node.
+
+
pytest-xdist 2.1.0 (2020-08-25)
===============================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-xdist-2.1.0/HOWTORELEASE.rst
new/pytest-xdist-2.2.0/HOWTORELEASE.rst
--- old/pytest-xdist-2.1.0/HOWTORELEASE.rst 2020-08-25 14:38:13.000000000
+0200
+++ new/pytest-xdist-2.2.0/HOWTORELEASE.rst 1970-01-01 01:00:00.000000000
+0100
@@ -1,43 +0,0 @@
-======================
-Releasing pytest-xdist
-======================
-
-This document describes the steps to make a new ``pytest-xdist`` release.
-
-Version
--------
-
-``master`` should always be green and a potential release candidate.
``pytest-xdist`` follows
-semantic versioning, so given that the current version is ``X.Y.Z``, to find
the next version number
-one needs to look at the ``changelog`` folder:
-
-- If there is any file named ``*.feature``, then we must make a new **minor**
release: next
- release will be ``X.Y+1.0``.
-
-- Otherwise it is just a **bug fix** release: ``X.Y.Z+1``.
-
-
-Steps
------
-
-To publish a new release ``X.Y.Z``, the steps are as follows:
-
-#. Create a new branch named ``release-X.Y.Z`` from the latest ``master``.
-
-#. Install ``tox`` in a virtualenv::
-
- $ pip install tox
-
-#. Update the necessary files with::
-
- $ tox -e release -- X.Y.Z
-
-#. Commit and push the branch for review.
-
-#. Once PR is **green** and **approved**, create and push a tag::
-
- $ export VERSION=X.Y.Z
- $ git tag v$VERSION release-$VERSION
- $ git push [email protected]:pytest-dev/pytest-xdist.git v$VERSION
-
-That will build the package and publish it on ``PyPI`` automatically.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-xdist-2.1.0/PKG-INFO
new/pytest-xdist-2.2.0/PKG-INFO
--- old/pytest-xdist-2.1.0/PKG-INFO 2020-08-25 14:38:29.493108000 +0200
+++ new/pytest-xdist-2.2.0/PKG-INFO 2020-12-14 13:15:19.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: pytest-xdist
-Version: 2.1.0
+Version: 2.2.0
Summary: pytest xdist plugin for distributed testing and loop-on-failing modes
Home-page: https://github.com/pytest-dev/pytest-xdist
Author: holger krekel and contributors
@@ -19,13 +19,8 @@
:alt: Python versions
:target: https://pypi.python.org/pypi/pytest-xdist
- .. image::
https://travis-ci.org/pytest-dev/pytest-xdist.svg?branch=master
- :alt: Travis CI build status
- :target: https://travis-ci.org/pytest-dev/pytest-xdist
-
- .. image::
https://ci.appveyor.com/api/projects/status/56eq1a1avd4sdd7e/branch/master?svg=true
- :alt: AppVeyor build status
- :target: https://ci.appveyor.com/project/pytestbot/pytest-xdist
+ .. image::
https://github.com/pytest-dev/pytest-xdist/workflows/build/badge.svg
+ :target: https://github.com/pytest-dev/pytest-xdist/actions
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/ambv/black
@@ -255,7 +250,7 @@
.. _`xspec syntax`: http://codespeak.net/execnet/basics.html#xspec
- .. _`socketserver.py`:
http://bitbucket.org/hpk42/execnet/raw/2af991418160/execnet/script/socketserver.py
+ .. _`socketserver.py`:
https://raw.githubusercontent.com/pytest-dev/execnet/master/execnet/script/socketserver.py
.. _`execnet`: http://codespeak.net/execnet
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-xdist-2.1.0/README.rst
new/pytest-xdist-2.2.0/README.rst
--- old/pytest-xdist-2.1.0/README.rst 2020-08-25 14:38:13.000000000 +0200
+++ new/pytest-xdist-2.2.0/README.rst 2020-12-14 13:15:14.000000000 +0100
@@ -11,13 +11,8 @@
:alt: Python versions
:target: https://pypi.python.org/pypi/pytest-xdist
-.. image:: https://travis-ci.org/pytest-dev/pytest-xdist.svg?branch=master
- :alt: Travis CI build status
- :target: https://travis-ci.org/pytest-dev/pytest-xdist
-
-.. image::
https://ci.appveyor.com/api/projects/status/56eq1a1avd4sdd7e/branch/master?svg=true
- :alt: AppVeyor build status
- :target: https://ci.appveyor.com/project/pytestbot/pytest-xdist
+.. image:: https://github.com/pytest-dev/pytest-xdist/workflows/build/badge.svg
+ :target: https://github.com/pytest-dev/pytest-xdist/actions
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/ambv/black
@@ -247,7 +242,7 @@
.. _`xspec syntax`: http://codespeak.net/execnet/basics.html#xspec
-.. _`socketserver.py`:
http://bitbucket.org/hpk42/execnet/raw/2af991418160/execnet/script/socketserver.py
+.. _`socketserver.py`:
https://raw.githubusercontent.com/pytest-dev/execnet/master/execnet/script/socketserver.py
.. _`execnet`: http://codespeak.net/execnet
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-xdist-2.1.0/RELEASING.rst
new/pytest-xdist-2.2.0/RELEASING.rst
--- old/pytest-xdist-2.1.0/RELEASING.rst 1970-01-01 01:00:00.000000000
+0100
+++ new/pytest-xdist-2.2.0/RELEASING.rst 2020-12-14 13:15:14.000000000
+0100
@@ -0,0 +1,43 @@
+======================
+Releasing pytest-xdist
+======================
+
+This document describes the steps to make a new ``pytest-xdist`` release.
+
+Version
+-------
+
+``master`` should always be green and a potential release candidate.
``pytest-xdist`` follows
+semantic versioning, so given that the current version is ``X.Y.Z``, to find
the next version number
+one needs to look at the ``changelog`` folder:
+
+- If there is any file named ``*.feature``, then we must make a new **minor**
release: next
+ release will be ``X.Y+1.0``.
+
+- Otherwise it is just a **bug fix** release: ``X.Y.Z+1``.
+
+
+Steps
+-----
+
+To publish a new release ``X.Y.Z``, the steps are as follows:
+
+#. Create a new branch named ``release-X.Y.Z`` from the latest ``master``.
+
+#. Install ``tox`` in a virtualenv::
+
+ $ pip install tox
+
+#. Update the necessary files with::
+
+ $ tox -e release -- X.Y.Z
+
+#. Commit and push the branch for review.
+
+#. Once PR is **green** and **approved**, create and push a tag::
+
+ $ export VERSION=X.Y.Z
+ $ git tag v$VERSION release-$VERSION
+ $ git push [email protected]:pytest-dev/pytest-xdist.git v$VERSION
+
+That will build the package and publish it on ``PyPI`` automatically.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/pytest-xdist-2.1.0/src/pytest_xdist.egg-info/PKG-INFO
new/pytest-xdist-2.2.0/src/pytest_xdist.egg-info/PKG-INFO
--- old/pytest-xdist-2.1.0/src/pytest_xdist.egg-info/PKG-INFO 2020-08-25
14:38:29.000000000 +0200
+++ new/pytest-xdist-2.2.0/src/pytest_xdist.egg-info/PKG-INFO 2020-12-14
13:15:19.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: pytest-xdist
-Version: 2.1.0
+Version: 2.2.0
Summary: pytest xdist plugin for distributed testing and loop-on-failing modes
Home-page: https://github.com/pytest-dev/pytest-xdist
Author: holger krekel and contributors
@@ -19,13 +19,8 @@
:alt: Python versions
:target: https://pypi.python.org/pypi/pytest-xdist
- .. image::
https://travis-ci.org/pytest-dev/pytest-xdist.svg?branch=master
- :alt: Travis CI build status
- :target: https://travis-ci.org/pytest-dev/pytest-xdist
-
- .. image::
https://ci.appveyor.com/api/projects/status/56eq1a1avd4sdd7e/branch/master?svg=true
- :alt: AppVeyor build status
- :target: https://ci.appveyor.com/project/pytestbot/pytest-xdist
+ .. image::
https://github.com/pytest-dev/pytest-xdist/workflows/build/badge.svg
+ :target: https://github.com/pytest-dev/pytest-xdist/actions
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/ambv/black
@@ -255,7 +250,7 @@
.. _`xspec syntax`: http://codespeak.net/execnet/basics.html#xspec
- .. _`socketserver.py`:
http://bitbucket.org/hpk42/execnet/raw/2af991418160/execnet/script/socketserver.py
+ .. _`socketserver.py`:
https://raw.githubusercontent.com/pytest-dev/execnet/master/execnet/script/socketserver.py
.. _`execnet`: http://codespeak.net/execnet
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/pytest-xdist-2.1.0/src/pytest_xdist.egg-info/SOURCES.txt
new/pytest-xdist-2.2.0/src/pytest_xdist.egg-info/SOURCES.txt
--- old/pytest-xdist-2.1.0/src/pytest_xdist.egg-info/SOURCES.txt
2020-08-25 14:38:29.000000000 +0200
+++ new/pytest-xdist-2.2.0/src/pytest_xdist.egg-info/SOURCES.txt
2020-12-14 13:15:19.000000000 +0100
@@ -1,9 +1,9 @@
CHANGELOG.rst
-HOWTORELEASE.rst
LICENSE
MANIFEST.in
OVERVIEW.md
README.rst
+RELEASING.rst
pyproject.toml
setup.cfg
setup.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-xdist-2.1.0/src/xdist/_version.py
new/pytest-xdist-2.2.0/src/xdist/_version.py
--- old/pytest-xdist-2.1.0/src/xdist/_version.py 2020-08-25
14:38:29.000000000 +0200
+++ new/pytest-xdist-2.2.0/src/xdist/_version.py 2020-12-14
13:15:19.000000000 +0100
@@ -1,4 +1,5 @@
# coding: utf-8
# file generated by setuptools_scm
# don't change, don't track in version control
-version = '2.1.0'
+version = '2.2.0'
+version_tuple = (2, 2, 0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-xdist-2.1.0/src/xdist/dsession.py
new/pytest-xdist-2.2.0/src/xdist/dsession.py
--- old/pytest-xdist-2.1.0/src/xdist/dsession.py 2020-08-25
14:38:13.000000000 +0200
+++ new/pytest-xdist-2.2.0/src/xdist/dsession.py 2020-12-14
13:15:14.000000000 +0100
@@ -174,6 +174,24 @@
assert not crashitem, (crashitem, node)
self._active_nodes.remove(node)
+ def worker_internal_error(self, node, formatted_error):
+ """
+ pytest_internalerror() was called on the worker.
+
+ pytest_internalerror() arguments are an excinfo and an excrepr, which
can't
+ be serialized, so we go with a poor man's solution of raising an
exception
+ here ourselves using the formatted message.
+ """
+ self._active_nodes.remove(node)
+ try:
+ assert False, formatted_error
+ except AssertionError:
+ from _pytest._code import ExceptionInfo
+
+ excinfo = ExceptionInfo.from_current()
+ excrepr = excinfo.getrepr()
+ self.config.hook.pytest_internalerror(excrepr=excrepr,
excinfo=excinfo)
+
def worker_errordown(self, node, error):
"""Emitted by the WorkerController when a node dies."""
self.config.hook.pytest_testnodedown(node=node, error=error)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-xdist-2.1.0/src/xdist/remote.py
new/pytest-xdist-2.2.0/src/xdist/remote.py
--- old/pytest-xdist-2.1.0/src/xdist/remote.py 2020-08-25 14:38:13.000000000
+0200
+++ new/pytest-xdist-2.2.0/src/xdist/remote.py 2020-12-14 13:15:14.000000000
+0100
@@ -33,8 +33,10 @@
self.channel.send((name, kwargs))
def pytest_internalerror(self, excrepr):
- for line in str(excrepr).split("\n"):
+ formatted_error = str(excrepr)
+ for line in formatted_error.split("\n"):
self.log("IERROR>", line)
+ interactor.sendevent("internal_error", formatted_error=formatted_error)
def pytest_sessionstart(self, session):
self.session = session
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-xdist-2.1.0/src/xdist/workermanage.py
new/pytest-xdist-2.2.0/src/xdist/workermanage.py
--- old/pytest-xdist-2.1.0/src/xdist/workermanage.py 2020-08-25
14:38:13.000000000 +0200
+++ new/pytest-xdist-2.2.0/src/xdist/workermanage.py 2020-12-14
13:15:14.000000000 +0100
@@ -324,6 +324,8 @@
self.log("ignoring {}({})".format(eventname, kwargs))
elif eventname == "workerready":
self.notify_inproc(eventname, node=self, **kwargs)
+ elif eventname == "internal_error":
+ self.notify_inproc(eventname, node=self, **kwargs)
elif eventname == "workerfinished":
self._down = True
self.workeroutput = kwargs["workeroutput"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-xdist-2.1.0/testing/acceptance_test.py
new/pytest-xdist-2.2.0/testing/acceptance_test.py
--- old/pytest-xdist-2.1.0/testing/acceptance_test.py 2020-08-25
14:38:13.000000000 +0200
+++ new/pytest-xdist-2.2.0/testing/acceptance_test.py 2020-12-14
13:15:14.000000000 +0100
@@ -772,19 +772,23 @@
testdir.makeconftest(
"""
- def pytest_warning_captured():
- assert False, "this hook should not be called in this version"
+ def pytest_warning_captured(warning_message):
+ if warning_message == "my custom worker warning":
+ assert False, (
+ "this hook should not be called from workers "
+ "in this version: {}"
+ ).format(warning_message)
"""
)
testdir.makepyfile(
"""
import warnings
def test():
- warnings.warn("custom warning")
+ warnings.warn("my custom worker warning")
"""
)
result = testdir.runpytest("-n1")
- result.stdout.fnmatch_lines(["* 1 passed in *"])
+ result.stdout.fnmatch_lines(["*1 passed*"])
result.stdout.no_fnmatch_line("*this hook should not be called in this
version")
@pytest.mark.parametrize("n", ["-n0", "-n1"])
@@ -1134,6 +1138,18 @@
assert "INTERNALERROR" not in result.stderr.str()
+def test_internal_errors_propagate_to_master(testdir):
+ testdir.makeconftest(
+ """
+ def pytest_collection_modifyitems():
+ raise RuntimeError("Some runtime error")
+ """
+ )
+ testdir.makepyfile("def test(): pass")
+ result = testdir.runpytest("-n1")
+ result.stdout.fnmatch_lines(["*RuntimeError: Some runtime error*"])
+
+
class TestLoadScope:
def test_by_module(self, testdir):
test_file = """
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-xdist-2.1.0/tox.ini
new/pytest-xdist-2.2.0/tox.ini
--- old/pytest-xdist-2.1.0/tox.ini 2020-08-25 14:38:13.000000000 +0200
+++ new/pytest-xdist-2.2.0/tox.ini 2020-12-14 13:15:14.000000000 +0100
@@ -24,6 +24,7 @@
[testenv:linting]
skip_install = True
usedevelop = True
+passenv = PRE_COMMIT_HOME
deps =
pre-commit
commands = pre-commit run --all-files --show-diff-on-failure