Hello community,

here is the log from the commit of package python-tox for openSUSE:Factory 
checked in at 2020-03-27 00:27:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-tox (Old)
 and      /work/SRC/openSUSE:Factory/.python-tox.new.3160 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-tox"

Fri Mar 27 00:27:47 2020 rev:32 rq:786809 version:3.14.5

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-tox/python-tox.changes    2020-02-15 
22:23:32.135248583 +0100
+++ /work/SRC/openSUSE:Factory/.python-tox.new.3160/python-tox.changes  
2020-03-27 00:27:49.960333857 +0100
@@ -1,0 +2,18 @@
+Fri Mar 20 10:30:48 UTC 2020 - Tomáš Chvátal <tchva...@suse.com>
+
+- Disable spinner tests as the monkeypatch changed behaviour in pytest
+
+-------------------------------------------------------------------
+Wed Mar 11 10:28:56 UTC 2020 - pgaj...@suse.com
+
+- version update to 3.14.5
+  - Add ``--discover`` (fallback to ``TOX_DISCOVER`` environment variable via 
path separator) to inject python executables
+    to try as first step of a discovery - note the executable still needs to 
match the environment by :user:`gaborbernat`.
+    `#1526 <https://github.com/tox-dev/tox/issues/1526>`_
+  - Bump minimal six version needed to avoid using one incompatible with newer
+    virtualenv. - by :user:`ssbarnea`
+    `#1519 <https://github.com/tox-dev/tox/issues/1519>`_
+  - Avoid pypy test failure due to undefined printout var. - by 
:user:`ssbarnea`
+    `#1521 <https://github.com/tox-dev/tox/issues/1521>`_
+
+-------------------------------------------------------------------

Old:
----
  tox-3.14.3.tar.gz

New:
----
  tox-3.14.5.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-tox.spec ++++++
--- /var/tmp/diff_new_pack.7bNIML/_old  2020-03-27 00:27:52.184334984 +0100
+++ /var/tmp/diff_new_pack.7bNIML/_new  2020-03-27 00:27:52.188334986 +0100
@@ -17,12 +17,12 @@
 
 
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
+%bcond_without python2
 Name:           python-tox
-Version:        3.14.3
+Version:        3.14.5
 Release:        0
 Summary:        Virtualenv-based automation of test activities
 License:        MIT
-Group:          Development/Languages/Python
 URL:            https://github.com/tox-dev/tox
 Source:         
https://files.pythonhosted.org/packages/source/t/tox/tox-%{version}.tar.gz
 BuildRequires:  %{python_module filelock}
@@ -39,11 +39,14 @@
 BuildRequires:  %{python_module pytest-xdist >= 1.22.2}
 BuildRequires:  %{python_module setuptools >= 41.0.1}
 BuildRequires:  %{python_module setuptools_scm >= 2.0.0}
-BuildRequires:  %{python_module six >= 1.0.0}
+BuildRequires:  %{python_module six >= 1.14.0}
 BuildRequires:  %{python_module toml}
 BuildRequires:  %{python_module virtualenv >= 16.0.0}
 BuildRequires:  %{python_module wheel >= 0.29.0}
 BuildRequires:  fdupes
+# we need python2 interpreter in tests for venv calls checks
+# even on python3 variant
+BuildRequires:  python-base
 BuildRequires:  python-rpm-macros
 BuildRequires:  unzip
 Requires:       python-filelock
@@ -52,7 +55,7 @@
 Requires:       python-pluggy >= 0.12.0
 Requires:       python-py >= 1.4.17
 Requires:       python-setuptools >= 30.0.0
-Requires:       python-six >= 1.0.0
+Requires:       python-six >= 1.14.0
 Requires:       python-toml >= 0.9.4
 Requires:       python-virtualenv >= 16.0.0
 Requires(post): update-alternatives
@@ -80,7 +83,6 @@
 
 %package -n %{name}-doc
 Summary:        Documentation for tox, a virtualenv-based test automation
-Group:          Development/Languages/Python
 Recommends:     %{python_module tox = %{version}}
 Provides:       %{python_module tox-doc = %{version}}
 
@@ -121,7 +123,10 @@
 export PYTHONDONTWRITEBYTECODE=1
 export PATH=%{buildroot}%{_bindir}:$PATH
 # Ignores for gh#tox-dev/tox#1293
-%pytest -k 'not (network or parallel or test_provision_missing or 
test_provision_interrupt_child or test_workdir_gets_resolved or 
test_provision_cli_args_ignore or test_provision_non_canonical_dep or 
test_create_KeyboardInterrupt or test_provision_from_pyvenv)'
+# test_dist_exists_version_change test_verbose_isolated_build: need python2* 
deps even on python3
+# test_spinner_stdout_not_unicode breaks with changes in monkeypatch in pytest
+rm tests/unit/util/test_spinner.py
+%pytest -k 'not (network or parallel or test_provision_missing or 
test_provision_interrupt_child or test_workdir_gets_resolved or 
test_provision_cli_args_ignore or test_provision_non_canonical_dep or 
test_create_KeyboardInterrupt or test_provision_from_pyvenv or 
test_verbose_isolated_build or test_dist_exists_version_change)'
 
 %post
 %python_install_alternative tox tox-quickstart

++++++ tox-3.14.3.tar.gz -> tox-3.14.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tox-3.14.3/CONTRIBUTORS new/tox-3.14.5/CONTRIBUTORS
--- old/tox-3.14.3/CONTRIBUTORS 2019-12-28 11:58:14.000000000 +0100
+++ new/tox-3.14.5/CONTRIBUTORS 2020-02-17 01:21:11.000000000 +0100
@@ -57,6 +57,7 @@
 Matt Good
 Matt Jeffery
 Mattieu Agopian
+Mehdi Abaakouk
 Michael Manganiello
 Mickaël Schoentgen
 Mikhail Kyshtymov
@@ -67,6 +68,7 @@
 Nick Prendergast
 Oliver Bestwalter
 Pablo Galindo
+Paul Moore
 Paweł Adamczak
 Philip Thiem
 Pierre-Jean Campigotto
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tox-3.14.3/PKG-INFO new/tox-3.14.5/PKG-INFO
--- old/tox-3.14.3/PKG-INFO     2019-12-28 11:58:34.418653000 +0100
+++ new/tox-3.14.5/PKG-INFO     2020-02-17 01:21:23.831395600 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: tox
-Version: 3.14.3
+Version: 3.14.5
 Summary: tox is a generic virtualenv management and test command line tool
 Home-page: http://tox.readthedocs.org
 Author: Holger Krekel, Oliver Bestwalter, Bernát Gábor and others
@@ -152,10 +152,10 @@
 Classifier: Programming Language :: Python :: 2
 Classifier: Programming Language :: Python :: 2.7
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.4
 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: !=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7
 Description-Content-Type: text/markdown
 Provides-Extra: testing
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tox-3.14.3/azure-pipelines.yml 
new/tox-3.14.5/azure-pipelines.yml
--- old/tox-3.14.3/azure-pipelines.yml  2019-12-28 11:58:14.000000000 +0100
+++ new/tox-3.14.5/azure-pipelines.yml  2020-02-17 01:21:11.000000000 +0100
@@ -55,7 +55,12 @@
     coverage:
       with_toxenv: 'coverage' # generate .tox/.coverage, .tox/coverage.xml 
after test run
       for_envs: [py38, py37, py36, py35, py27, pypy3, pypy]
-
+    before:
+      - task: UsePythonVersion@0
+        condition: and(succeeded(), in(variables['TOXENV'], 'pypy'))
+        displayName: provision pypy 3
+        inputs:
+          versionSpec: 'pypy3'
 - ${{ if startsWith(variables['Build.SourceBranch'], 'refs/tags/') }}:
   - template: publish-pypi.yml@tox
     parameters:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tox-3.14.3/docs/changelog.rst 
new/tox-3.14.5/docs/changelog.rst
--- old/tox-3.14.3/docs/changelog.rst   2019-12-28 11:58:14.000000000 +0100
+++ new/tox-3.14.5/docs/changelog.rst   2020-02-17 01:21:11.000000000 +0100
@@ -11,6 +11,39 @@
 
 .. towncrier release notes start
 
+v3.14.5 (2020-02-16)
+--------------------
+
+Features
+^^^^^^^^
+
+- Add ``--discover`` (fallback to ``TOX_DISCOVER`` environment variable via 
path separator) to inject python executables
+  to try as first step of a discovery - note the executable still needs to 
match the environment by :user:`gaborbernat`.
+  `#1526 <https://github.com/tox-dev/tox/issues/1526>`_
+
+
+v3.14.4 (2020-02-13)
+--------------------
+
+Bugfixes
+^^^^^^^^
+
+- Bump minimal six version needed to avoid using one incompatible with newer
+  virtualenv. - by :user:`ssbarnea`
+  `#1519 <https://github.com/tox-dev/tox/issues/1519>`_
+- Avoid pypy test failure due to undefined printout var. - by :user:`ssbarnea`
+  `#1521 <https://github.com/tox-dev/tox/issues/1521>`_
+
+
+Features
+^^^^^^^^
+
+- Add ``interrupt_timeout`` and ``terminate_timeout`` that configure delay 
between SIGINT, SIGTERM and SIGKILL when tox is interrupted. - by :user:`sileht`
+  `#1493 <https://github.com/tox-dev/tox/issues/1493>`_
+- Add ``HTTP_PROXY``, ``HTTPS_PROXY`` and ``NO_PROXY`` to default passenv. - 
by :user:`pfmoore`
+  `#1498 <https://github.com/tox-dev/tox/issues/1498>`_
+
+
 v3.14.3 (2019-12-27)
 --------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tox-3.14.3/docs/config.rst 
new/tox-3.14.5/docs/config.rst
--- old/tox-3.14.3/docs/config.rst      2019-12-28 11:58:14.000000000 +0100
+++ new/tox-3.14.5/docs/config.rst      2020-02-17 01:21:11.000000000 +0100
@@ -160,6 +160,21 @@
     Name of the virtual environment used to create a source distribution from 
the
     source tree.
 
+.. conf:: interrupt_timeout ^ float ^ 0.3
+
+    .. versionadded:: 3.15.0
+
+    When tox is interrupted, it propagates the signal to the child process,
+    waits :conf:``interrupt_timeout`` seconds, and sends it a SIGTERM if it 
hasn't
+    exited.
+
+.. conf:: terminate_timeout ^ float ^ 0.2
+
+    .. versionadded:: 3.15.0
+
+    When tox is interrupted, it propagates the signal to the child process,
+    waits :conf:``interrupt_timeout`` seconds, sends it a SIGTERM, waits
+    :conf:``terminate_timeout`` seconds, and sends it a SIGKILL if it hasn't 
exited.
 
 Jenkins override
 ++++++++++++++++
@@ -385,10 +400,11 @@
     Some variables are always passed through to ensure the basic functionality
     of standard library functions or tooling like pip:
 
-    * passed through on all platforms: ``CURL_CA_BUNDLE`, ``PATH``,
+    * passed through on all platforms: ``CURL_CA_BUNDLE``, ``PATH``,
       ``LANG``, ``LANGUAGE``,
       ``LD_LIBRARY_PATH``, ``PIP_INDEX_URL``,
-      ``REQUESTS_CA_BUNDLE``, ``SSL_CERT_FILE``
+      ``REQUESTS_CA_BUNDLE``, ``SSL_CERT_FILE``,
+      ``HTTP_PROXY``, ``HTTPS_PROXY``, ``NO_PROXY``
     * Windows: ``SYSTEMDRIVE``, ``SYSTEMROOT``, ``PATHEXT``, ``TEMP``, ``TMP``
        ``NUMBER_OF_PROCESSORS``, ``USERPROFILE``, ``MSYSTEM``
     * Others (e.g. UNIX, macOS): ``TMPDIR``
@@ -445,6 +461,13 @@
     This is useful for situations where hardlinks don't work (e.g. running in
     VMS with Windows guests).
 
+.. conf:: download ^ true|false ^ false
+
+    .. versionadded:: 3.10
+
+    Set to ``true`` if you want virtualenv to upgrade pip/wheel/setuptools to
+    the latest version.
+
 .. conf:: args_are_paths ^ true|false ^ false
 
     Treat positional arguments passed to ``tox`` as file system paths
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tox-3.14.3/docs/example/jenkins.rst 
new/tox-3.14.5/docs/example/jenkins.rst
--- old/tox-3.14.3/docs/example/jenkins.rst     2019-12-28 11:58:14.000000000 
+0100
+++ new/tox-3.14.5/docs/example/jenkins.rst     2020-02-17 01:21:11.000000000 
+0100
@@ -98,14 +98,13 @@
       # change to ``doc`` dir if that is where your sphinx-docs live
       changedir = doc
       deps = sphinx
-             py
+             pytest
       commands = pytest --tb=line -v --junitxml=junit-{envname}.xml 
check_sphinx.py
 
 2. create a ``doc/check_sphinx.py`` file like this:
 
   .. code-block:: python
 
-    import py
     import subprocess
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tox-3.14.3/setup.cfg new/tox-3.14.5/setup.cfg
--- old/tox-3.14.3/setup.cfg    2019-12-28 11:58:34.418653000 +0100
+++ new/tox-3.14.5/setup.cfg    2020-02-17 01:21:23.831395600 +0100
@@ -28,10 +28,10 @@
        Programming Language :: Python :: 2
        Programming Language :: Python :: 2.7
        Programming Language :: Python :: 3
-       Programming Language :: Python :: 3.4
        Programming Language :: Python :: 3.5
        Programming Language :: Python :: 3.6
        Programming Language :: Python :: 3.7
+       Programming Language :: Python :: 3.8
 
 [options]
 packages = find:
@@ -41,7 +41,7 @@
        packaging >= 14
        pluggy >= 0.12.0, <1
        py >= 1.4.17, <2
-       six >= 1.0.0, <2
+       six >= 1.14.0, <2  # required when virtualenv>=20
        virtualenv >= 16.0.0
        toml >=0.9.4
        filelock >= 3.0.0, <4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tox-3.14.3/src/tox/action.py 
new/tox-3.14.5/src/tox/action.py
--- old/tox-3.14.3/src/tox/action.py    2019-12-28 11:58:14.000000000 +0100
+++ new/tox-3.14.5/src/tox/action.py    2020-02-17 01:21:11.000000000 +0100
@@ -18,14 +18,23 @@
 from tox.util.lock import get_unique_file
 from tox.util.stdlib import is_main_thread
 
-WAIT_INTERRUPT = 0.3
-WAIT_TERMINATE = 0.2
-
 
 class Action(object):
     """Action is an effort to group operations with the same goal (within 
reporting)"""
 
-    def __init__(self, name, msg, args, log_dir, generate_tox_log, 
command_log, popen, python):
+    def __init__(
+        self,
+        name,
+        msg,
+        args,
+        log_dir,
+        generate_tox_log,
+        command_log,
+        popen,
+        python,
+        interrupt_timeout,
+        terminate_timeout,
+    ):
         self.name = name
         self.args = args
         self.msg = msg
@@ -36,6 +45,8 @@
         self.command_log = command_log
         self._timed_report = None
         self.python = python
+        self.interrupt_timeout = interrupt_timeout
+        self.terminate_timeout = terminate_timeout
 
     def __enter__(self):
         msg = "{} {}".format(self.msg, " ".join(map(str, self.args)))
@@ -180,10 +191,10 @@
         if process.poll() is None:
             self.info("KeyboardInterrupt", msg.format("SIGINT"))
             process.send_signal(signal.CTRL_C_EVENT if sys.platform == "win32" 
else signal.SIGINT)
-            if self._wait(process, WAIT_INTERRUPT) is None:
+            if self._wait(process, self.interrupt_timeout) is None:
                 self.info("KeyboardInterrupt", msg.format("SIGTERM"))
                 process.terminate()
-                if self._wait(process, WAIT_TERMINATE) is None:
+                if self._wait(process, self.terminate_timeout) is None:
                     self.info("KeyboardInterrupt", msg.format("SIGKILL"))
                     process.kill()
                     process.communicate()
@@ -193,7 +204,7 @@
         if sys.version_info >= (3, 3):
             # python 3 has timeout feature built-in
             try:
-                process.communicate(timeout=WAIT_INTERRUPT)
+                process.communicate(timeout=timeout)
             except subprocess.TimeoutExpired:
                 pass
         else:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tox-3.14.3/src/tox/config/__init__.py 
new/tox-3.14.5/src/tox/config/__init__.py
--- old/tox-3.14.3/src/tox/config/__init__.py   2019-12-28 11:58:14.000000000 
+0100
+++ new/tox-3.14.5/src/tox/config/__init__.py   2020-02-17 01:21:11.000000000 
+0100
@@ -54,6 +54,9 @@
 
 WITHIN_PROVISION = os.environ.get(str("TOX_PROVISION")) == "1"
 
+INTERRUPT_TIMEOUT = 0.3
+TERMINATE_TIMEOUT = 0.2
+
 
 def get_plugin_manager(plugins=()):
     # initialize plugin manager
@@ -472,6 +475,14 @@
         help="write a json file with detailed information "
         "about all commands and results involved.",
     )
+    parser.add_argument(
+        "--discover",
+        dest="discover",
+        nargs="+",
+        metavar="PATH",
+        help="for python discovery first try the python executables under 
these paths",
+        default=[],
+    )
 
     # We choose 1 to 4294967295 because it is the range of PYTHONHASHSEED.
     parser.add_argument(
@@ -673,6 +684,9 @@
             "REQUESTS_CA_BUNDLE",
             "SSL_CERT_FILE",
             "TOX_WORK_DIR",
+            "HTTP_PROXY",
+            "HTTPS_PROXY",
+            "NO_PROXY",
             str(REPORTER_TIMESTAMP_ON_ENV),
             str(PARALLEL_ENV_VAR_KEY_PUBLIC),
         }
@@ -799,6 +813,20 @@
     parser.add_testenv_attribute_obj(DepOption())
 
     parser.add_testenv_attribute(
+        name="interrupt_timeout",
+        type="float",
+        default=INTERRUPT_TIMEOUT,
+        help="timeout before sending SIGTERM after SIGINT",
+    )
+
+    parser.add_testenv_attribute(
+        name="terminate_timeout",
+        type="float",
+        default=TERMINATE_TIMEOUT,
+        help="timeout before sending SIGKILL after SIGTERM",
+    )
+
+    parser.add_testenv_attribute(
         name="commands",
         type="argvlist",
         default="",
@@ -1231,7 +1259,16 @@
         for env_attr in config._testenv_attr:
             atype = env_attr.type
             try:
-                if atype in ("bool", "path", "string", "dict", "dict_setenv", 
"argv", "argvlist"):
+                if atype in (
+                    "bool",
+                    "float",
+                    "path",
+                    "string",
+                    "dict",
+                    "dict_setenv",
+                    "argv",
+                    "argvlist",
+                ):
                     meth = getattr(reader, "get{}".format(atype))
                     res = meth(env_attr.name, env_attr.default, 
replace=replace)
                 elif atype == "basepython":
@@ -1448,6 +1485,20 @@
 
         return d
 
+    def getfloat(self, name, default=None, replace=True):
+        s = self.getstring(name, default, replace=replace)
+        if not s or not replace:
+            s = default
+        if s is None:
+            raise KeyError("no config value [{}] {} 
found".format(self.section_name, name))
+
+        if not isinstance(s, float):
+            try:
+                s = float(s)
+            except ValueError:
+                raise tox.exception.ConfigError("{}: invalid float 
{!r}".format(name, s))
+        return s
+
     def getbool(self, name, default=None, replace=True):
         s = self.getstring(name, default, replace=replace)
         if not s or not replace:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tox-3.14.3/src/tox/interpreters/common.py 
new/tox-3.14.5/src/tox/interpreters/common.py
--- old/tox-3.14.3/src/tox/interpreters/common.py       1970-01-01 
01:00:00.000000000 +0100
+++ new/tox-3.14.5/src/tox/interpreters/common.py       2020-02-17 
01:21:11.000000000 +0100
@@ -0,0 +1,25 @@
+import os
+
+from tox.interpreters.py_spec import CURRENT, PythonSpec
+from tox.interpreters.via_path import exe_spec
+
+
+def base_discover(envconfig):
+    base_python = envconfig.basepython
+    spec = PythonSpec.from_name(base_python)
+
+    # 1. check passed in discover elements
+    discovers = envconfig.config.option.discover
+    if not discovers:
+        discovers = os.environ.get(str("TOX_DISCOVER"), "").split(os.pathsep)
+    for discover in discovers:
+        if os.path.exists(discover):
+            cur_spec = exe_spec(discover, envconfig.basepython)
+            if cur_spec is not None and cur_spec.satisfies(spec):
+                return spec, cur_spec.path
+
+    # 2. check current
+    if spec.name is not None and CURRENT.satisfies(spec):
+        return spec, CURRENT.path
+
+    return spec, None
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tox-3.14.3/src/tox/interpreters/unix.py 
new/tox-3.14.5/src/tox/interpreters/unix.py
--- old/tox-3.14.3/src/tox/interpreters/unix.py 2019-12-28 11:58:14.000000000 
+0100
+++ new/tox-3.14.5/src/tox/interpreters/unix.py 2020-02-17 01:21:11.000000000 
+0100
@@ -2,20 +2,18 @@
 
 import tox
 
-from .py_spec import CURRENT, PythonSpec
+from .common import base_discover
 from .via_path import check_with_path
 
 
 @tox.hookimpl
 def tox_get_python_executable(envconfig):
-    base_python = envconfig.basepython
-    spec = PythonSpec.from_name(base_python)
-    # first, check current
-    if spec.name is not None and CURRENT.satisfies(spec):
-        return CURRENT.path
-    # second check if the literal base python
-    candidates = [base_python]
-    # third check if the un-versioned name is good
-    if spec.name is not None and spec.name != base_python:
+    spec, path = base_discover(envconfig)
+    if path is not None:
+        return path
+    # 3. check if the literal base python
+    candidates = [envconfig.basepython]
+    # 4. check if the un-versioned name is good
+    if spec.name is not None and spec.name != envconfig.basepython:
         candidates.append(spec.name)
     return check_with_path(candidates, spec)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tox-3.14.3/src/tox/interpreters/windows/__init__.py 
new/tox-3.14.5/src/tox/interpreters/windows/__init__.py
--- old/tox-3.14.3/src/tox/interpreters/windows/__init__.py     2019-12-28 
11:58:14.000000000 +0100
+++ new/tox-3.14.5/src/tox/interpreters/windows/__init__.py     2020-02-17 
01:21:11.000000000 +0100
@@ -4,18 +4,16 @@
 
 import tox
 
-from ..py_spec import CURRENT, PythonSpec
+from ..common import base_discover
+from ..py_spec import CURRENT
 from ..via_path import check_with_path
 
 
 @tox.hookimpl
 def tox_get_python_executable(envconfig):
-    base_python = envconfig.basepython
-    spec = PythonSpec.from_name(base_python)
-    # first, check current
-    if spec.name is not None and CURRENT.satisfies(spec):
-        return CURRENT.path
-
+    spec, path = base_discover(envconfig)
+    if path is not None:
+        return path
     # second check if the py.exe has it (only for non path specs)
     if spec.path is None:
         py_exe = locate_via_pep514(spec)
@@ -25,7 +23,7 @@
     # third check if the literal base python is on PATH
     candidates = [envconfig.basepython]
     # fourth check if the name is on PATH
-    if spec.name is not None and spec.name != base_python:
+    if spec.name is not None and spec.name != envconfig.basepython:
         candidates.append(spec.name)
     # or check known locations
     if spec.major is not None and spec.minor is not None:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tox-3.14.3/src/tox/session/__init__.py 
new/tox-3.14.5/src/tox/session/__init__.py
--- old/tox-3.14.3/src/tox/session/__init__.py  2019-12-28 11:58:14.000000000 
+0100
+++ new/tox-3.14.5/src/tox/session/__init__.py  2020-02-17 01:21:11.000000000 
+0100
@@ -19,7 +19,7 @@
 import tox
 from tox import reporter
 from tox.action import Action
-from tox.config import parseconfig
+from tox.config import INTERRUPT_TIMEOUT, TERMINATE_TIMEOUT, parseconfig
 from tox.config.parallel import ENV_VAR_KEY_PRIVATE as 
PARALLEL_ENV_VAR_KEY_PRIVATE
 from tox.config.parallel import OFF_VALUE as PARALLEL_OFF
 from tox.logs.result import ResultLog
@@ -170,6 +170,8 @@
             self.resultlog.command_log,
             self.popen,
             sys.executable,
+            INTERRUPT_TIMEOUT,
+            TERMINATE_TIMEOUT,
         )
 
     def runcommand(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tox-3.14.3/src/tox/session/commands/run/parallel.py 
new/tox-3.14.5/src/tox/session/commands/run/parallel.py
--- old/tox-3.14.3/src/tox/session/commands/run/parallel.py     2019-12-28 
11:58:14.000000000 +0100
+++ new/tox-3.14.5/src/tox/session/commands/run/parallel.py     2020-02-17 
01:21:11.000000000 +0100
@@ -35,6 +35,7 @@
 
         def run_in_thread(tox_env, os_env, processes):
             output = None
+            print_out = None
             env_name = tox_env.envconfig.envname
             status = "skipped tests" if config.option.notest else None
             try:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tox-3.14.3/src/tox/venv.py 
new/tox-3.14.5/src/tox/venv.py
--- old/tox-3.14.3/src/tox/venv.py      2019-12-28 11:58:14.000000000 +0100
+++ new/tox-3.14.5/src/tox/venv.py      2020-02-17 01:21:11.000000000 +0100
@@ -130,6 +130,8 @@
             command_log,
             self.popen,
             self.envconfig.envpython,
+            self.envconfig.interrupt_timeout,
+            self.envconfig.terminate_timeout,
         )
 
     def get_result_json_path(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tox-3.14.3/src/tox/version.py 
new/tox-3.14.5/src/tox/version.py
--- old/tox-3.14.3/src/tox/version.py   2019-12-28 11:58:34.000000000 +0100
+++ new/tox-3.14.5/src/tox/version.py   2020-02-17 01:21:23.000000000 +0100
@@ -1,4 +1,4 @@
 # coding: utf-8
 from __future__ import unicode_literals
 
-__version__ = '3.14.3'
+__version__ = '3.14.5'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tox-3.14.3/src/tox.egg-info/PKG-INFO 
new/tox-3.14.5/src/tox.egg-info/PKG-INFO
--- old/tox-3.14.3/src/tox.egg-info/PKG-INFO    2019-12-28 11:58:34.000000000 
+0100
+++ new/tox-3.14.5/src/tox.egg-info/PKG-INFO    2020-02-17 01:21:23.000000000 
+0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: tox
-Version: 3.14.3
+Version: 3.14.5
 Summary: tox is a generic virtualenv management and test command line tool
 Home-page: http://tox.readthedocs.org
 Author: Holger Krekel, Oliver Bestwalter, Bernát Gábor and others
@@ -152,10 +152,10 @@
 Classifier: Programming Language :: Python :: 2
 Classifier: Programming Language :: Python :: 2.7
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.4
 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: !=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7
 Description-Content-Type: text/markdown
 Provides-Extra: testing
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tox-3.14.3/src/tox.egg-info/SOURCES.txt 
new/tox-3.14.5/src/tox.egg-info/SOURCES.txt
--- old/tox-3.14.3/src/tox.egg-info/SOURCES.txt 2019-12-28 11:58:34.000000000 
+0100
+++ new/tox-3.14.5/src/tox.egg-info/SOURCES.txt 2020-02-17 01:21:23.000000000 
+0100
@@ -78,6 +78,7 @@
 src/tox/helper/get_site_package_dir.py
 src/tox/helper/get_version.py
 src/tox/interpreters/__init__.py
+src/tox/interpreters/common.py
 src/tox/interpreters/py_spec.py
 src/tox/interpreters/unix.py
 src/tox/interpreters/via_path.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tox-3.14.3/src/tox.egg-info/requires.txt 
new/tox-3.14.5/src/tox.egg-info/requires.txt
--- old/tox-3.14.3/src/tox.egg-info/requires.txt        2019-12-28 
11:58:34.000000000 +0100
+++ new/tox-3.14.5/src/tox.egg-info/requires.txt        2020-02-17 
01:21:23.000000000 +0100
@@ -1,7 +1,7 @@
 packaging>=14
 pluggy<1,>=0.12.0
 py<2,>=1.4.17
-six<2,>=1.0.0
+six<2,>=1.14.0
 virtualenv>=16.0.0
 toml>=0.9.4
 filelock<4,>=3.0.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tox-3.14.3/tests/unit/config/test_config.py 
new/tox-3.14.5/tests/unit/config/test_config.py
--- old/tox-3.14.3/tests/unit/config/test_config.py     2019-12-28 
11:58:14.000000000 +0100
+++ new/tox-3.14.5/tests/unit/config/test_config.py     2020-02-17 
01:21:11.000000000 +0100
@@ -175,6 +175,25 @@
         assert DepOption._is_same_dep("pkg_hello-world3==1.0", 
"pkg_hello-world3<=2.0")
         assert not DepOption._is_same_dep("pkg_hello-world3==1.0", 
"otherpkg>=2.0")
 
+    def test_interrupt_terminate_timeout_set_manually(self, newconfig):
+        config = newconfig(
+            [],
+            """
+            [testenv:dev]
+            interrupt_timeout = 5.0
+            terminate_timeout = 10.0
+
+            [testenv:other]
+        """,
+        )
+        envconfig = config.envconfigs["other"]
+        assert 0.3 == envconfig.interrupt_timeout
+        assert 0.2 == envconfig.terminate_timeout
+
+        envconfig = config.envconfigs["dev"]
+        assert 5.0 == envconfig.interrupt_timeout
+        assert 10.0 == envconfig.terminate_timeout
+
 
 class TestConfigPlatform:
     def test_config_parse_platform(self, newconfig):
@@ -1077,6 +1096,9 @@
         assert "LANG" in envconfig.passenv
         assert "LANGUAGE" in envconfig.passenv
         assert "LD_LIBRARY_PATH" in envconfig.passenv
+        assert "HTTP_PROXY" in envconfig.passenv
+        assert "HTTPS_PROXY" in envconfig.passenv
+        assert "NO_PROXY" in envconfig.passenv
         assert PARALLEL_ENV_VAR_KEY_PUBLIC in envconfig.passenv
         assert PARALLEL_ENV_VAR_KEY_PRIVATE not in envconfig.passenv
         assert "A123A" in envconfig.passenv
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/tox-3.14.3/tests/unit/interpreters/test_interpreters.py 
new/tox-3.14.5/tests/unit/interpreters/test_interpreters.py
--- old/tox-3.14.3/tests/unit/interpreters/test_interpreters.py 2019-12-28 
11:58:14.000000000 +0100
+++ new/tox-3.14.5/tests/unit/interpreters/test_interpreters.py 2020-02-17 
01:21:11.000000000 +0100
@@ -29,10 +29,12 @@
 
 
 @pytest.mark.skipif(tox.INFO.IS_PYPY, reason="testing cpython interpreter 
discovery")
-def test_tox_get_python_executable():
+def test_tox_get_python_executable(mocker):
     class envconfig:
         basepython = sys.executable
         envname = "pyxx"
+        config = mocker.MagicMock()
+        config.return_value.option.return_value.discover = []
 
     def get_exe(name):
         envconfig.basepython = name
@@ -73,7 +75,7 @@
 
 
 @pytest.mark.skipif("sys.platform == 'win32'", reason="symlink execution 
unreliable on Windows")
-def test_find_alias_on_path(monkeypatch, tmp_path):
+def test_find_alias_on_path(monkeypatch, tmp_path, mocker):
     reporter.update_default_reporter(Verbosity.DEFAULT, Verbosity.DEBUG)
     magic = tmp_path / "magic{}".format(os.path.splitext(sys.executable)[1])
     os.symlink(sys.executable, str(magic))
@@ -85,6 +87,8 @@
     class envconfig:
         basepython = "magic"
         envname = "pyxx"
+        config = mocker.MagicMock()
+        config.return_value.option.return_value.discover = []
 
     detected = py.path.local.sysfind("magic")
     assert detected
@@ -102,10 +106,12 @@
 
 
 class TestInterpreters:
-    def test_get_executable(self, interpreters):
+    def test_get_executable(self, interpreters, mocker):
         class envconfig:
             basepython = sys.executable
             envname = "pyxx"
+            config = mocker.MagicMock()
+            config.return_value.option.return_value.discover = []
 
         x = interpreters.get_executable(envconfig)
         assert x == sys.executable
@@ -114,10 +120,12 @@
         assert info.executable == sys.executable
         assert isinstance(info, InterpreterInfo)
 
-    def test_get_executable_no_exist(self, interpreters):
+    def test_get_executable_no_exist(self, interpreters, mocker):
         class envconfig:
             basepython = "1lkj23"
             envname = "pyxx"
+            config = mocker.MagicMock()
+            config.return_value.option.return_value.discover = []
 
         assert not interpreters.get_executable(envconfig)
         info = interpreters.get_info(envconfig)
@@ -154,10 +162,12 @@
         info = interpreters.get_info(envconfig)
         assert info.executable == str(magic)
 
-    def test_get_sitepackagesdir_error(self, interpreters):
+    def test_get_sitepackagesdir_error(self, interpreters, mocker):
         class envconfig:
             basepython = sys.executable
             envname = "123"
+            config = mocker.MagicMock()
+            config.return_value.option.return_value.discover = []
 
         info = interpreters.get_info(envconfig)
         s = interpreters.get_sitepackagesdir(info, "")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tox-3.14.3/tox.ini new/tox-3.14.5/tox.ini
--- old/tox-3.14.3/tox.ini      2019-12-28 11:58:14.000000000 +0100
+++ new/tox-3.14.5/tox.ini      2020-02-17 01:21:11.000000000 +0100
@@ -4,6 +4,7 @@
           py35,
           py36,
           py37,
+          py38,
           pypy,
           pypy3,
           coverage,
@@ -86,7 +87,7 @@
            coverage xml -o {toxworkdir}/coverage.xml
            coverage html -d {toxworkdir}/htmlcov
            diff-cover --compare-branch {env:DIFF_AGAINST:origin/master} 
{toxworkdir}/coverage.xml
-depends = py27, py34, py35, py36, py37, pypy, pypy3
+depends = py27, py34, py35, py36, py37, py38, pypy, pypy3
 parallel_show_output = True
 
 [testenv:exit_code]


Reply via email to