Hello community, here is the log from the commit of package python-pytest-xdist for openSUSE:Factory checked in at 2020-01-16 18:13:28 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-pytest-xdist (Old) and /work/SRC/openSUSE:Factory/.python-pytest-xdist.new.26092 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pytest-xdist" Thu Jan 16 18:13:28 2020 rev:12 rq:761139 version:1.31.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-pytest-xdist/python-pytest-xdist.changes 2019-12-02 11:27:08.650676139 +0100 +++ /work/SRC/openSUSE:Factory/.python-pytest-xdist.new.26092/python-pytest-xdist.changes 2020-01-16 18:13:33.496714070 +0100 @@ -1,0 +2,8 @@ +Mon Jan 6 12:50:36 UTC 2020 - Tomáš Chvátal <tchva...@suse.com> + +- Update to 1.31.0: + * #486: Add support for Python 3.8. + * #491: Fix regression that caused custom plugin command-line + arguments to be discarded when using --tx mode. + +------------------------------------------------------------------- Old: ---- pytest-xdist-1.30.0.tar.gz New: ---- pytest-xdist-1.31.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-pytest-xdist.spec ++++++ --- /var/tmp/diff_new_pack.0p8e1Q/_old 2020-01-16 18:13:34.096714409 +0100 +++ /var/tmp/diff_new_pack.0p8e1Q/_new 2020-01-16 18:13:34.096714409 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-pytest-xdist # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,12 +18,12 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-pytest-xdist -Version: 1.30.0 +Version: 1.31.0 Release: 0 Summary: Distributed testing and loop-on-failing for py.test License: MIT Group: Development/Languages/Python -Url: https://github.com/pytest-dev/pytest-xdist +URL: https://github.com/pytest-dev/pytest-xdist Source0: https://files.pythonhosted.org/packages/source/p/pytest-xdist/pytest-xdist-%{version}.tar.gz BuildRequires: %{python_module execnet >= 1.1} BuildRequires: %{python_module filelock} ++++++ pytest-xdist-1.30.0.tar.gz -> pytest-xdist-1.31.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-xdist-1.30.0/.appveyor.yml new/pytest-xdist-1.31.0/.appveyor.yml --- old/pytest-xdist-1.30.0/.appveyor.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/pytest-xdist-1.31.0/.appveyor.yml 2019-12-20 02:42:42.000000000 +0100 @@ -0,0 +1,23 @@ +environment: + matrix: + - TOXENV: "py27-pytestlatest" + - TOXENV: "py34-pytestlatest" + - TOXENV: "py35-pytestlatest" + - TOXENV: "py36-pytestlatest" + - TOXENV: "py37-pytestlatest" + - TOXENV: "py38-pytestlatest" + - TOXENV: "py38-pytestmaster" + - TOXENV: "py38-pytestfeatures" + +install: + - C:\Python38\python -m pip install -U pip setuptools virtualenv + - C:\Python38\python -m pip install -U tox setuptools_scm + +build: false # Not a C# project, build stuff at the test step instead. + +test_script: + - C:\Python38\python -m tox + +# We don't deploy anything on tags with AppVeyor, we use Travis instead, so we +# might as well save resources +skip_tags: true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-xdist-1.30.0/.pre-commit-config.yaml new/pytest-xdist-1.31.0/.pre-commit-config.yaml --- old/pytest-xdist-1.30.0/.pre-commit-config.yaml 2019-10-01 17:36:18.000000000 +0200 +++ new/pytest-xdist-1.31.0/.pre-commit-config.yaml 2019-12-20 02:42:42.000000000 +0100 @@ -21,4 +21,4 @@ files: ^(CHANGELOG.rst|HOWTORELEASE.rst|README.rst|changelog/.*)$ language: python additional_dependencies: [pygments, restructuredtext_lint] - python_version: python3.7 + language_version: python3.7 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-xdist-1.30.0/.travis.yml new/pytest-xdist-1.31.0/.travis.yml --- old/pytest-xdist-1.30.0/.travis.yml 2019-10-01 17:36:18.000000000 +0200 +++ new/pytest-xdist-1.31.0/.travis.yml 2019-12-20 02:42:42.000000000 +0100 @@ -30,8 +30,8 @@ cache: directories: - $HOME/.cache/pre-commit - - python: '3.7' - env: TOXENV=py37-pytestlatest + - python: '3.8' + env: TOXENV=py38-pytestlatest - python: '2.7' env: TOXENV=py27-pytestlatest @@ -43,12 +43,14 @@ - python: "3.6" env: TOXENV=py36-pytestlatest - python: "3.7" - env: TOXENV=py37-pytestmaster - - python: "3.7" - env: TOXENV=py37-pytestfeatures + env: TOXENV=py37-pytestlatest + - python: "3.8" + env: TOXENV=py38-pytestmaster + - python: "3.8" + env: TOXENV=py38-pytestfeatures - stage: deploy - python: '3.7' + python: '3.8' env: install: pip install -U setuptools setuptools_scm script: skip diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-xdist-1.30.0/CHANGELOG.rst new/pytest-xdist-1.31.0/CHANGELOG.rst --- old/pytest-xdist-1.30.0/CHANGELOG.rst 2019-10-01 17:36:18.000000000 +0200 +++ new/pytest-xdist-1.31.0/CHANGELOG.rst 2019-12-20 02:42:42.000000000 +0100 @@ -1,3 +1,42 @@ +pytest-xdist 1.31.0 (2019-12-19) +================================ + +Features +-------- + +- `#486 <https://github.com/pytest-dev/pytest-xdist/issues/486>`_: Add support for Python 3.8. + + +Bug Fixes +--------- + +- `#491 <https://github.com/pytest-dev/pytest-xdist/issues/491>`_: Fix regression that caused custom plugin command-line arguments to be discarded when using ``--tx`` mode. + + + +pytest-xdist 1.30.0 (2019-10-01) +================================ + +Features +-------- + +- `#448 <https://github.com/pytest-dev/pytest-xdist/issues/448>`_: Initialization between workers and master nodes is now more consistent, which fixes a number of + long-standing issues related to startup with the ``-c`` option. + + Issues: + + * `#6 <https://github.com/pytest-dev/pytest-xdist/issues/6>`__: Poor interaction between ``-n#`` and ``-c X.cfg`` + * `#445 <https://github.com/pytest-dev/pytest-xdist/issues/445>`__: pytest-xdist is not reporting the same nodeid as pytest does + + This however only works with **pytest 5.1 or later**, as it required changes in pytest itself. + + +Bug Fixes +--------- + +- `#467 <https://github.com/pytest-dev/pytest-xdist/issues/467>`_: Fix crash issues related to running xdist with the terminal plugin disabled. + + pytest-xdist 1.29.0 (2019-06-14) ================================ @@ -401,39 +440,6 @@ - Added ``HOWTORELEASE`` documentation. (#155) -.. - You should *NOT* be adding new change log entries to this file, this - file is managed by towncrier. You *may* edit previous change logs to - fix problems like typo corrections or such. - To add a new change log entry, please see - https://pip.pypa.io/en/latest/development/#adding-a-news-entry - We named the news folder ``changelog`` - -.. towncrier release notes start - -pytest-xdist 1.30.0 (2019-10-01) -================================ - -Features --------- - -- `#448 <https://github.com/pytest-dev/pytest-xdist/issues/448>`_: Initialization between workers and master nodes is now more consistent, which fixes a number of - long-standing issues related to startup with the ``-c`` option. - - Issues: - - * `#6 <https://github.com/pytest-dev/pytest-xdist/issues/6>`__: Poor interaction between ``-n#`` and ``-c X.cfg`` - * `#445 <https://github.com/pytest-dev/pytest-xdist/issues/445>`__: pytest-xdist is not reporting the same nodeid as pytest does - - This however only works with **pytest 5.1 or later**, as it required changes in pytest itself. - - -Bug Fixes ---------- - -- `#467 <https://github.com/pytest-dev/pytest-xdist/issues/467>`_: Fix crash issues related to running xdist with the terminal plugin disabled. - - 1.17.0 ------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-xdist-1.30.0/PKG-INFO new/pytest-xdist-1.31.0/PKG-INFO --- old/pytest-xdist-1.30.0/PKG-INFO 2019-10-01 17:36:34.000000000 +0200 +++ new/pytest-xdist-1.31.0/PKG-INFO 2019-12-20 02:42:57.247453700 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: pytest-xdist -Version: 1.30.0 +Version: 1.31.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 @@ -103,6 +103,59 @@ in version ``1.21``. + Making session-scoped fixtures execute only once + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + ``pytest-xdist`` is designed so that each worker process will perform its own collection and execute + a subset of all tests. This means that tests in different processes requesting a high-level + scoped fixture (for example ``session``) will execute the fixture code more than once, which + breaks expectations and might be undesired in certain situations. + + While ``pytest-xdist`` does not have a builtin support for ensuring a session-scoped fixture is + executed exactly once, this can be achieved by using a lock file for inter-process communication. + + The example below needs to execute the fixture ``session_data`` only once (because it is + resource intensive, or needs to execute only once to define configuration options, etc), so it makes + use of a `FileLock <https://pypi.org/project/filelock/>`_ to produce the fixture data only once + when the first process requests the fixture, while the other processes will then read + the data from a file. + + Here is the code: + + .. code-block:: python + + import json + + import pytest + from filelock import FileLock + + + @pytest.fixture(scope="session") + def session_data(tmp_path_factory, worker_id): + if not worker_id: + # not executing in with multiple workers, just produce the data and let + # pytest's fixture caching do its job + return produce_expensive_data() + + # get the temp directory shared by all workers + root_tmp_dir = tmp_path_factory.getbasetemp().parent + + fn = root_tmp_dir / "data.json" + with FileLock(str(fn) + ".lock"): + if fn.is_file(): + data = json.loads(fn.read_text()) + else: + data = produce_expensive_data() + fn.write_text(json.dumps(data)) + return data + + + The example above can also be use in cases a fixture needs to execute exactly once per test session, like + initializing a database service and populating initial tables. + + This technique might not work for every case, but should be a starting point for many situations + where executing a high-scope fixture exactly once is important. + Running tests in a Python subprocess ------------------------------------ @@ -303,5 +356,6 @@ Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.* Provides-Extra: testing diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-xdist-1.30.0/README.rst new/pytest-xdist-1.31.0/README.rst --- old/pytest-xdist-1.30.0/README.rst 2019-10-01 17:36:18.000000000 +0200 +++ new/pytest-xdist-1.31.0/README.rst 2019-12-20 02:42:42.000000000 +0100 @@ -95,6 +95,59 @@ in version ``1.21``. +Making session-scoped fixtures execute only once +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +``pytest-xdist`` is designed so that each worker process will perform its own collection and execute +a subset of all tests. This means that tests in different processes requesting a high-level +scoped fixture (for example ``session``) will execute the fixture code more than once, which +breaks expectations and might be undesired in certain situations. + +While ``pytest-xdist`` does not have a builtin support for ensuring a session-scoped fixture is +executed exactly once, this can be achieved by using a lock file for inter-process communication. + +The example below needs to execute the fixture ``session_data`` only once (because it is +resource intensive, or needs to execute only once to define configuration options, etc), so it makes +use of a `FileLock <https://pypi.org/project/filelock/>`_ to produce the fixture data only once +when the first process requests the fixture, while the other processes will then read +the data from a file. + +Here is the code: + +.. code-block:: python + + import json + + import pytest + from filelock import FileLock + + + @pytest.fixture(scope="session") + def session_data(tmp_path_factory, worker_id): + if not worker_id: + # not executing in with multiple workers, just produce the data and let + # pytest's fixture caching do its job + return produce_expensive_data() + + # get the temp directory shared by all workers + root_tmp_dir = tmp_path_factory.getbasetemp().parent + + fn = root_tmp_dir / "data.json" + with FileLock(str(fn) + ".lock"): + if fn.is_file(): + data = json.loads(fn.read_text()) + else: + data = produce_expensive_data() + fn.write_text(json.dumps(data)) + return data + + +The example above can also be use in cases a fixture needs to execute exactly once per test session, like +initializing a database service and populating initial tables. + +This technique might not work for every case, but should be a starting point for many situations +where executing a high-scope fixture exactly once is important. + Running tests in a Python subprocess ------------------------------------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-xdist-1.30.0/appveyor.yml new/pytest-xdist-1.31.0/appveyor.yml --- old/pytest-xdist-1.30.0/appveyor.yml 2019-10-01 17:36:18.000000000 +0200 +++ new/pytest-xdist-1.31.0/appveyor.yml 1970-01-01 01:00:00.000000000 +0100 @@ -1,22 +0,0 @@ -environment: - matrix: - - TOXENV: "py27-pytestlatest" - - TOXENV: "py34-pytestlatest" - - TOXENV: "py35-pytestlatest" - - TOXENV: "py36-pytestlatest" - - TOXENV: "py37-pytestlatest" - - TOXENV: "py37-pytestmaster" - - TOXENV: "py37-pytestfeatures" - -install: - - C:\Python37\python -m pip install -U pip setuptools - - C:\Python37\python -m pip install -U tox setuptools_scm - -build: false # Not a C# project, build stuff at the test step instead. - -test_script: - - C:\Python37\python -m tox - -# We don't deploy anything on tags with AppVeyor, we use Travis instead, so we -# might as well save resources -skip_tags: true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-xdist-1.30.0/setup.py new/pytest-xdist-1.31.0/setup.py --- old/pytest-xdist-1.30.0/setup.py 2019-10-01 17:36:18.000000000 +0200 +++ new/pytest-xdist-1.31.0/setup.py 2019-12-20 02:42:42.000000000 +0100 @@ -46,5 +46,6 @@ "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", ], ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-xdist-1.30.0/src/pytest_xdist.egg-info/PKG-INFO new/pytest-xdist-1.31.0/src/pytest_xdist.egg-info/PKG-INFO --- old/pytest-xdist-1.30.0/src/pytest_xdist.egg-info/PKG-INFO 2019-10-01 17:36:33.000000000 +0200 +++ new/pytest-xdist-1.31.0/src/pytest_xdist.egg-info/PKG-INFO 2019-12-20 02:42:57.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: pytest-xdist -Version: 1.30.0 +Version: 1.31.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 @@ -103,6 +103,59 @@ in version ``1.21``. + Making session-scoped fixtures execute only once + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + ``pytest-xdist`` is designed so that each worker process will perform its own collection and execute + a subset of all tests. This means that tests in different processes requesting a high-level + scoped fixture (for example ``session``) will execute the fixture code more than once, which + breaks expectations and might be undesired in certain situations. + + While ``pytest-xdist`` does not have a builtin support for ensuring a session-scoped fixture is + executed exactly once, this can be achieved by using a lock file for inter-process communication. + + The example below needs to execute the fixture ``session_data`` only once (because it is + resource intensive, or needs to execute only once to define configuration options, etc), so it makes + use of a `FileLock <https://pypi.org/project/filelock/>`_ to produce the fixture data only once + when the first process requests the fixture, while the other processes will then read + the data from a file. + + Here is the code: + + .. code-block:: python + + import json + + import pytest + from filelock import FileLock + + + @pytest.fixture(scope="session") + def session_data(tmp_path_factory, worker_id): + if not worker_id: + # not executing in with multiple workers, just produce the data and let + # pytest's fixture caching do its job + return produce_expensive_data() + + # get the temp directory shared by all workers + root_tmp_dir = tmp_path_factory.getbasetemp().parent + + fn = root_tmp_dir / "data.json" + with FileLock(str(fn) + ".lock"): + if fn.is_file(): + data = json.loads(fn.read_text()) + else: + data = produce_expensive_data() + fn.write_text(json.dumps(data)) + return data + + + The example above can also be use in cases a fixture needs to execute exactly once per test session, like + initializing a database service and populating initial tables. + + This technique might not work for every case, but should be a starting point for many situations + where executing a high-scope fixture exactly once is important. + Running tests in a Python subprocess ------------------------------------ @@ -303,5 +356,6 @@ Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.* Provides-Extra: testing diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-xdist-1.30.0/src/pytest_xdist.egg-info/SOURCES.txt new/pytest-xdist-1.31.0/src/pytest_xdist.egg-info/SOURCES.txt --- old/pytest-xdist-1.30.0/src/pytest_xdist.egg-info/SOURCES.txt 2019-10-01 17:36:33.000000000 +0200 +++ new/pytest-xdist-1.31.0/src/pytest_xdist.egg-info/SOURCES.txt 2019-12-20 02:42:57.000000000 +0100 @@ -1,3 +1,4 @@ +.appveyor.yml .gitignore .pre-commit-config.yaml .travis.yml @@ -7,7 +8,6 @@ LICENSE OVERVIEW.md README.rst -appveyor.yml pyproject.toml setup.cfg setup.py diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-xdist-1.30.0/src/xdist/_version.py new/pytest-xdist-1.31.0/src/xdist/_version.py --- old/pytest-xdist-1.30.0/src/xdist/_version.py 2019-10-01 17:36:33.000000000 +0200 +++ new/pytest-xdist-1.31.0/src/xdist/_version.py 2019-12-20 02:42:57.000000000 +0100 @@ -1,4 +1,4 @@ # coding: utf-8 # file generated by setuptools_scm # don't change, don't track in version control -version = '1.30.0' +version = '1.31.0' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-xdist-1.30.0/src/xdist/workermanage.py new/pytest-xdist-1.31.0/src/xdist/workermanage.py --- old/pytest-xdist-1.30.0/src/xdist/workermanage.py 2019-10-01 17:36:18.000000000 +0200 +++ new/pytest-xdist-1.31.0/src/xdist/workermanage.py 2019-12-20 02:42:42.000000000 +0100 @@ -190,6 +190,7 @@ parts = arg.split(splitcode) fspath = py.path.local(parts[0]) if not fspath.exists(): + result.append(arg) continue for root in roots: x = fspath.relto(root) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-xdist-1.30.0/testing/acceptance_test.py new/pytest-xdist-1.31.0/testing/acceptance_test.py --- old/pytest-xdist-1.30.0/testing/acceptance_test.py 2019-10-01 17:36:18.000000000 +0200 +++ new/pytest-xdist-1.31.0/testing/acceptance_test.py 2019-12-20 02:42:42.000000000 +0100 @@ -186,16 +186,46 @@ ) assert result.ret == 1 - def test_distribution_rsyncdirs_example(self, testdir): + def test_distribution_rsyncdirs_example(self, testdir, monkeypatch): + # use a custom plugin that has a custom command-line option to ensure + # this is propagated to workers (see #491) + testdir.makepyfile( + **{ + "myplugin/src/foobarplugin.py": """ + from __future__ import print_function + + import os + import sys + import pytest + + def pytest_addoption(parser): + parser.addoption("--foobar", action="store", dest="foobar_opt") + + @pytest.mark.tryfirst + def pytest_load_initial_conftests(early_config): + opt = early_config.known_args_namespace.foobar_opt + print("--foobar=%s active! [%s]" % (opt, os.getpid()), file=sys.stderr) + """ + } + ) + assert (testdir.tmpdir / "myplugin/src/foobarplugin.py").check(file=1) + monkeypatch.setenv( + "PYTHONPATH", str(testdir.tmpdir / "myplugin/src"), prepend=os.pathsep + ) + source = testdir.mkdir("source") dest = testdir.mkdir("dest") subdir = source.mkdir("example_pkg") subdir.ensure("__init__.py") p = subdir.join("test_one.py") p.write("def test_5():\n assert not __file__.startswith(%r)" % str(p)) - result = testdir.runpytest( + result = testdir.runpytest_subprocess( "-v", "-d", + "-s", + "-pfoobarplugin", + "--foobar=123", + "--dist=load", "--rsyncdir=%(subdir)s" % locals(), "--tx=popen//chdir=%(dest)s" % locals(), p, @@ -209,6 +239,7 @@ "*1 passed*", ] ) + result.stderr.fnmatch_lines(["--foobar=123 active! *"]) assert dest.join(subdir.basename).check(dir=1) def test_backward_compatibility_worker_terminology(self, testdir): @@ -784,7 +815,7 @@ ) ) result = testdir.runpytest(n) - result.stdout.fnmatch_lines(["*this is a warning*", "*1 passed, 1 warnings*"]) + result.stdout.fnmatch_lines(["*this is a warning*", "*1 passed, 1 warning*"]) @pytest.mark.parametrize("n", ["-n0", "-n1"]) def test_custom_subclass(self, testdir, n): @@ -808,7 +839,7 @@ ) testdir.syspathinsert() result = testdir.runpytest(n) - result.stdout.fnmatch_lines(["*MyWarning*", "*1 passed, 1 warnings*"]) + result.stdout.fnmatch_lines(["*MyWarning*", "*1 passed, 1 warning*"]) @pytest.mark.parametrize("n", ["-n0", "-n1"]) def test_unserializable_arguments(self, testdir, n): @@ -825,7 +856,7 @@ ) testdir.syspathinsert() result = testdir.runpytest(n) - result.stdout.fnmatch_lines(["*UserWarning*foo.txt*", "*1 passed, 1 warnings*"]) + result.stdout.fnmatch_lines(["*UserWarning*foo.txt*", "*1 passed, 1 warning*"]) @pytest.mark.parametrize("n", ["-n0", "-n1"]) def test_unserializable_warning_details(self, testdir, n): @@ -857,7 +888,7 @@ testdir.syspathinsert() result = testdir.runpytest(n) result.stdout.fnmatch_lines( - ["*ResourceWarning*unclosed*", "*1 passed, 1 warnings*"] + ["*ResourceWarning*unclosed*", "*1 passed, 1 warning*"] ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-xdist-1.30.0/tox.ini new/pytest-xdist-1.31.0/tox.ini --- old/pytest-xdist-1.30.0/tox.ini 2019-10-01 17:36:18.000000000 +0200 +++ new/pytest-xdist-1.31.0/tox.ini 2019-12-20 02:42:42.000000000 +0100 @@ -1,8 +1,8 @@ [tox] envlist= linting - py{27,34,35,36,37}-pytestlatest - py37-pytest{master,features} + py{27,34,35,36,37,38}-pytestlatest + py38-pytest{master,features} [testenv] passenv = USER USERNAME