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 <dmuel...@suse.com> + +- 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 g...@github.com: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 g...@github.com: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