Hello community, here is the log from the commit of package python-tox for openSUSE:Factory checked in at 2020-10-29 09:47:47 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-tox (Old) and /work/SRC/openSUSE:Factory/.python-tox.new.3463 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-tox" Thu Oct 29 09:47:47 2020 rev:36 rq:841453 version:3.18.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-tox/python-tox.changes 2020-06-28 23:05:44.118740900 +0200 +++ /work/SRC/openSUSE:Factory/.python-tox.new.3463/python-tox.changes 2020-10-29 09:47:49.124140994 +0100 @@ -1,0 +2,14 @@ +Thu Jul 23 13:31:13 UTC 2020 - Marketa Calabkova <[email protected]> + +- update to 3.18.0 + * Add allowlist_externals alias to whitelist_externals (whitelist_externals is now deprecated). - by :user:`dajose` + * Fix tests when the ``HOSTNAME`` environment variable is set, but empty string - by :user:`hroncok` + * The long arguments ``--verbose`` and ``--quiet`` (rather than only their short forms, ``-v`` and ``-q``) are now accepted. + * The ``ResultLog`` now prefers ``HOSTNAME`` environment variable value (if set) over the full qualified domain name of localhost. + This makes it possible to disable an undesired DNS lookup, + which happened on all ``tox`` invocations, including trivial ones * by :user:`hroncok` + * Update packaging information for Flit. + * Fixed the support for using ``{temp_dir}`` in ``tox.ini`` - by :user:`webknjaz` + * Allow skipping the package and installation step when passing the ``--skip-pkg-install``. + +------------------------------------------------------------------- Old: ---- tox-3.15.2.tar.gz New: ---- tox-3.18.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-tox.spec ++++++ --- /var/tmp/diff_new_pack.mVTpjp/_old 2020-10-29 09:47:51.060142822 +0100 +++ /var/tmp/diff_new_pack.mVTpjp/_new 2020-10-29 09:47:51.064142826 +0100 @@ -19,7 +19,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} %bcond_without python2 Name: python-tox -Version: 3.15.2 +Version: 3.18.0 Release: 0 Summary: Virtualenv-based automation of test activities License: MIT ++++++ tox-3.15.2.tar.gz -> tox-3.18.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.2/.pre-commit-config.yaml new/tox-3.18.0/.pre-commit-config.yaml --- old/tox-3.15.2/.pre-commit-config.yaml 2020-06-06 10:34:23.000000000 +0200 +++ new/tox-3.18.0/.pre-commit-config.yaml 2020-07-23 10:48:33.000000000 +0200 @@ -2,7 +2,7 @@ python: python3 repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v3.0.1 + rev: v3.1.0 hooks: - id: check-ast - id: check-builtin-literals @@ -14,18 +14,18 @@ - id: end-of-file-fixer - id: trailing-whitespace - repo: https://github.com/asottile/pyupgrade - rev: v2.4.3 + rev: v2.7.1 hooks: - id: pyupgrade - repo: https://github.com/asottile/seed-isort-config - rev: v2.1.1 + rev: v2.2.0 hooks: - id: seed-isort-config args: - --application-directories - .:src - repo: https://github.com/pre-commit/mirrors-isort - rev: v4.3.21 + rev: v5.1.4 hooks: - id: isort - repo: https://github.com/ambv/black @@ -51,14 +51,14 @@ hooks: - id: rst-backticks - repo: https://github.com/asottile/setup-cfg-fmt - rev: v1.9.0 + rev: v1.11.0 hooks: - id: setup-cfg-fmt args: - --min-py3-version - '3.4' - repo: https://gitlab.com/pycqa/flake8 - rev: 3.8.1 + rev: 3.8.3 hooks: - id: flake8 additional_dependencies: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.2/CONTRIBUTORS new/tox-3.18.0/CONTRIBUTORS --- old/tox-3.15.2/CONTRIBUTORS 2020-06-06 10:34:24.000000000 +0200 +++ new/tox-3.18.0/CONTRIBUTORS 2020-07-23 10:48:33.000000000 +0200 @@ -16,6 +16,7 @@ Bartolome Sanchez Salado Benoit Pierre Bernat Gabor +Brett Langdon Bruno Oliveira Carl Meyer Charles Brunet @@ -25,10 +26,12 @@ Cyril Roelandt Dane Hillard David Staheli +David Diaz Ederag Eli Collins Eugene Yunak Fernando L. Pereira +Florian Bruhin Florian Preinstorfer Florian Schulze George Alton @@ -49,6 +52,7 @@ Josh Snyder Joshua Hesketh Julian Krause +Jürgen Gmach Jurko Gospodnetić Krisztian Fekete Laszlo Vasko diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.2/PKG-INFO new/tox-3.18.0/PKG-INFO --- old/tox-3.15.2/PKG-INFO 2020-06-06 10:40:58.831983300 +0200 +++ new/tox-3.18.0/PKG-INFO 2020-07-23 10:48:48.560198500 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: tox -Version: 3.15.2 +Version: 3.18.0 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 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.2/docs/_draft.rst new/tox-3.18.0/docs/_draft.rst --- old/tox-3.15.2/docs/_draft.rst 2020-05-21 13:17:49.000000000 +0200 +++ new/tox-3.18.0/docs/_draft.rst 1970-01-01 01:00:00.000000000 +0100 @@ -1,18 +0,0 @@ -vNEXT (2020-05-21) ------------------- - -Bugfixes - NEXT -~~~~~~~~~~~~~~~ -- Fix coverage generation in CI - by :user:`gaborbernat`. (`#1551 <https://github.com/tox-dev/tox/issues/1551>`_) -- Fix the CI failures: - - - drop Python 3.5 support as it's not expected to get to a release before EOL, - - fix test using ``\n`` instead of ``os.linesep``, - - Windows Python 3.6 does not contain ``_overlapped.ReadFileInto`` - - - by :user:`gaborbernat`. (`#1556 <https://github.com/tox-dev/tox/issues/1556>`_) - -Improved Documentation - NEXT -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- Add base documentation by merging virtualenv structure with tox 3 - by :user:`gaborbernat`. (`#1551 <https://github.com/tox-dev/tox/issues/1551>`_) - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.2/docs/changelog.rst new/tox-3.18.0/docs/changelog.rst --- old/tox-3.15.2/docs/changelog.rst 2020-06-06 10:40:35.000000000 +0200 +++ new/tox-3.18.0/docs/changelog.rst 2020-07-23 10:48:33.000000000 +0200 @@ -11,6 +11,81 @@ .. towncrier release notes start +v3.18.0 (2020-07-23) +-------------------- + +Deprecations (removal in next major release) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +- Add allowlist_externals alias to whitelist_externals (whitelist_externals is now deprecated). - by :user:`dajose` + `#1491 <https://github.com/tox-dev/tox/issues/1491>`_ + + +v3.17.1 (2020-07-15) +-------------------- + +Bugfixes +^^^^^^^^ + +- Fix tests when the ``HOSTNAME`` environment variable is set, but empty string - by :user:`hroncok` + `#1616 <https://github.com/tox-dev/tox/issues/1616>`_ + + +v3.17.0 (2020-07-14) +-------------------- + +Features +^^^^^^^^ + +- The long arguments ``--verbose`` and ``--quiet`` (rather than only their short forms, ``-v`` and ``-q``) are now accepted. + `#1612 <https://github.com/tox-dev/tox/issues/1612>`_ +- The ``ResultLog`` now prefers ``HOSTNAME`` environment variable value (if set) over the full qualified domain name of localhost. + This makes it possible to disable an undesired DNS lookup, + which happened on all ``tox`` invocations, including trivial ones - by :user:`hroncok` + `#1615 <https://github.com/tox-dev/tox/issues/1615>`_ + + +Documentation +^^^^^^^^^^^^^ + +- Update packaging information for Flit. + `#1613 <https://github.com/tox-dev/tox/issues/1613>`_ + + +v3.16.1 (2020-06-29) +-------------------- + +Bugfixes +^^^^^^^^ + +- Fixed the support for using ``{temp_dir}`` in ``tox.ini`` - by :user:`webknjaz` + `#1609 <https://github.com/tox-dev/tox/issues/1609>`_ + + +v3.16.0 (2020-06-26) +-------------------- + +Features +^^^^^^^^ + +- Allow skipping the package and installation step when passing the ``--skip-pkg-install``. This should be used in pair with the ``--notest``, so you can separate environment setup and test run: + + .. code-block:: console + + tox -e py --notest + tox -e py --skip-pkg-install + + by :user:`gaborbernat`. + `#1605 <https://github.com/tox-dev/tox/issues/1605>`_ + + +Miscellaneous +^^^^^^^^^^^^^ + +- Improve config parsing performance by precompiling commonly used regular expressions - by :user:`brettlangdon` + `#1603 <https://github.com/tox-dev/tox/issues/1603>`_ + + v3.15.2 (2020-06-06) -------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.2/docs/config.rst new/tox-3.18.0/docs/config.rst --- old/tox-3.15.2/docs/config.rst 2020-06-06 10:34:24.000000000 +0200 +++ new/tox-3.18.0/docs/config.rst 2020-07-23 10:48:33.000000000 +0200 @@ -325,15 +325,20 @@ Don't set this option if your :conf:`install_command` does not use pip. -.. conf:: whitelist_externals ^ MULTI-LINE-LIST +.. conf:: allowlist_externals ^ MULTI-LINE-LIST Each line specifies a command name (in glob-style pattern format) which can be used in the ``commands`` section without triggering a "not installed in virtualenv" warning. Example: if you use the - unix ``make`` for running tests you can list ``whitelist_externals=make`` - or ``whitelist_externals=/usr/bin/make`` if you want more precision. + unix ``make`` for running tests you can list ``allowlist_externals=make`` + or ``allowlist_externals=/usr/bin/make`` if you want more precision. If you don't want tox to issue a warning in any case, just use - ``whitelist_externals=*`` which will match all commands (not recommended). + ``allowlist_externals=*`` which will match all commands (not recommended). + + .. note:: + + ``whitelist_externals`` has the same meaning and usage as ``allowlist_externals`` + but it is now deprecated. .. conf:: changedir ^ PATH ^ {toxinidir} @@ -461,7 +466,7 @@ WARNING: test command found but not installed in testenv cmd: /path/to/parent/interpreter/bin/<some command> env: /foo/bar/.tox/python - Maybe you forgot to specify a dependency? See also the whitelist_externals envconfig setting. + Maybe you forgot to specify a dependency? See also the allowlist_externals envconfig setting. .. conf:: alwayscopy ^ true|false ^ false @@ -719,7 +724,7 @@ interactive shell substitution ++++++++++++++++++++++++++++++ -It's possible to inject a config value only when tox is running in interactive shell (standard input): +It's possible to inject a config value only when tox is running in interactive shell (standard input):: {tty:ON_VALUE:OFF_VALUE} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.2/docs/example/basic.rst new/tox-3.18.0/docs/example/basic.rst --- old/tox-3.15.2/docs/example/basic.rst 2020-06-05 18:40:17.000000000 +0200 +++ new/tox-3.18.0/docs/example/basic.rst 2020-07-23 10:48:33.000000000 +0200 @@ -104,21 +104,21 @@ If the expression does not match against ``sys.platform`` the test environment will be skipped. -whitelisting non-virtualenv commands +allowing non-virtualenv commands ----------------------------------------------- .. versionadded:: 1.5 Sometimes you may want to use tools not contained in your virtualenv such as ``make``, ``bash`` or others. To avoid -warnings you can use the ``whitelist_externals`` testenv +warnings you can use the ``allowlist_externals`` testenv configuration: .. code-block:: ini # content of tox.ini [testenv] - whitelist_externals = make + allowlist_externals = make /bin/bash @@ -416,7 +416,7 @@ - Invoke by using the ``--parallel`` or ``-p`` flag. After the packaging phase completes tox will run in parallel processes tox environments (spins a new instance of the tox interpreter, but passes through all host flags and environment variables). -- ``-p`` takes an argument specifying the degree of parallelization: +- ``-p`` takes an argument specifying the degree of parallelization, defaulting to ``auto``: - ``all`` to run all invoked environments in parallel, - ``auto`` to limit it to CPU count, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.2/docs/example/package.rst new/tox-3.18.0/docs/example/package.rst --- old/tox-3.15.2/docs/example/package.rst 2020-06-05 18:40:17.000000000 +0200 +++ new/tox-3.18.0/docs/example/package.rst 2020-07-23 10:48:33.000000000 +0200 @@ -43,8 +43,8 @@ .. code-block:: toml [build-system] - requires = ["flit >= 1.1"] - build-backend = "flit.buildapi" + requires = ["flit_core >=2,<4"] + build-backend = "flit_core.buildapi" [tool.flit.metadata] module = "package_toml_flit" @@ -58,13 +58,6 @@ [tox] isolated_build = True - [tox:.package] - # note tox will use the same python version as under what tox is installed to package - # so unless this is python 3 you can require a given python version for the packaging - # environment via the basepython key - basepython = python3 - - poetry ------ poetry_ requires ``Python 3``, however the generated source diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.2/docs/index.rst new/tox-3.18.0/docs/index.rst --- old/tox-3.15.2/docs/index.rst 2020-06-05 18:40:17.000000000 +0200 +++ new/tox-3.18.0/docs/index.rst 2020-07-23 10:48:33.000000000 +0200 @@ -119,7 +119,7 @@ environment variables not specified via :conf:`passenv`. Furthermore, it will also alter the ``PATH`` variable so that your commands resolve first and foremost within the current active tox environment. In general all executables in the path are available in ``commands``, but tox will -emit a warning if it was not explicitly allowed via :conf:`whitelist_externals`. +emit a warning if it was not explicitly allowed via :conf:`allowlist_externals`. Current features ------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.2/setup.cfg new/tox-3.18.0/setup.cfg --- old/tox-3.15.2/setup.cfg 2020-06-06 10:40:58.832926800 +0200 +++ new/tox-3.18.0/setup.cfg 2020-07-23 10:48:48.560198500 +0200 @@ -5,6 +5,7 @@ long_description_content_type = text/markdown url = http://tox.readthedocs.org author = Holger Krekel, Oliver Bestwalter, Bernát Gábor and others +maintainer = Bernat Gabor, Oliver Bestwalter, Anthony Asottile license = MIT license_file = LICENSE platforms = any @@ -27,7 +28,6 @@ Topic :: Software Development :: Testing Topic :: Utilities keywords = virtual, environments, isolated, testing -maintainer = Bernat Gabor, Oliver Bestwalter, Anthony Asottile maintainer-email = [email protected] project_urls = Source=https://github.com/tox-dev/tox @@ -54,20 +54,20 @@ [options.extras_require] docs = - sphinx >= 2.0.0 - towncrier >= 18.5.0 - pygments-github-lexers >= 0.0.5 - sphinxcontrib-autoprogram >= 0.1.5 + pygments-github-lexers>=0.0.5 + sphinx>=2.0.0 + sphinxcontrib-autoprogram>=0.1.5 + towncrier>=18.5.0 testing = - freezegun >= 0.3.11 - pathlib2 >= 2.3.3 - pytest >= 4.0.0 - pytest-cov >= 2.5.1 - pytest-mock >= 1.10.0 - pytest-xdist >= 1.22.2 - pytest-randomly >= 1.0.0 - psutil >= 5.6.1; python_version != "3.4" - flaky >= 3.4.0 + flaky>=3.4.0 + freezegun>=0.3.11 + pathlib2>=2.3.3 + pytest>=4.0.0 + pytest-cov>=2.5.1 + pytest-mock>=1.10.0 + pytest-randomly>=1.0.0 + pytest-xdist>=1.22.2 + psutil>=5.6.1;python_version != "3.4" [options.packages.find] where = src diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.2/src/tox/config/__init__.py new/tox-3.18.0/src/tox/config/__init__.py --- old/tox-3.15.2/src/tox/config/__init__.py 2020-06-06 10:34:24.000000000 +0200 +++ new/tox-3.18.0/src/tox/config/__init__.py 2020-07-23 10:48:33.000000000 +0200 @@ -57,6 +57,11 @@ INTERRUPT_TIMEOUT = 0.3 TERMINATE_TIMEOUT = 0.2 +_FACTOR_LINE_PATTERN = re.compile(r"^([\w{}\.!,-]+)\:\s+(.+)") +_ENVSTR_SPLIT_PATTERN = re.compile(r"((?:\{[^}]+\})+)|,") +_ENVSTR_EXPAND_PATTERN = re.compile(r"\{([^}]+)\}") +_WHITESPACE_PATTERN = re.compile(r"\s+") + def get_plugin_manager(plugins=()): # initialize plugin manager @@ -442,6 +447,9 @@ parser.add_argument( "--sdistonly", action="store_true", help="only perform the sdist packaging activity.", ) + parser.add_argument( + "--skip-pkg-install", action="store_true", help="skip package installation for this run", + ) add_parallel_flags(parser) parser.add_argument( "--parallel--safe-build", @@ -656,10 +664,14 @@ parser.add_testenv_attribute_obj(PosargsOption()) + def skip_install_default(testenv_config, value): + return value is True or testenv_config.config.option.skip_pkg_install is True + parser.add_testenv_attribute( name="skip_install", type="bool", default=False, + postprocess=skip_install_default, help="Do not install the current package. This can be used when you need the virtualenv " "management but do not want to install the current package", ) @@ -748,7 +760,11 @@ ) parser.add_testenv_attribute( - name="whitelist_externals", + name="whitelist_externals", type="line-list", help="DEPRECATED: use allowlist_externals", + ) + + parser.add_testenv_attribute( + name="allowlist_externals", type="line-list", help="each lines specifies a path or basename for which tox will not warn " "about it coming from outside the test environment.", @@ -1090,8 +1106,9 @@ reader.addsubstitutions(distdir=config.distdir) config.distshare = reader.getpath("distshare", dist_share_default) - config.temp_dir = reader.getpath("temp_dir", "{toxworkdir}/.tmp") reader.addsubstitutions(distshare=config.distshare) + config.temp_dir = reader.getpath("temp_dir", "{toxworkdir}/.tmp") + reader.addsubstitutions(temp_dir=config.temp_dir) config.sdistsrc = reader.getpath("sdistsrc", None) config.setupdir = reader.getpath("setupdir", "{toxinidir}") config.logdir = config.toxworkdir.join("log") @@ -1438,12 +1455,12 @@ def _expand_envstr(envstr): # split by commas not in groups - tokens = re.split(r"((?:\{[^}]+\})+)|,", envstr) + tokens = _ENVSTR_SPLIT_PATTERN.split(envstr) envlist = ["".join(g).strip() for k, g in itertools.groupby(tokens, key=bool) if k] def expand(env): - tokens = re.split(r"\{([^}]+)\}", env) - parts = [re.sub(r"\s+", "", token).split(",") for token in tokens] + tokens = _ENVSTR_EXPAND_PATTERN.split(env) + parts = [_WHITESPACE_PATTERN.sub("", token).split(",") for token in tokens] return ["".join(variant) for variant in itertools.product(*parts)] return mapcat(expand, envlist) @@ -1607,7 +1624,7 @@ def _apply_factors(self, s): def factor_line(line): - m = re.search(r"^([\w{}\.!,-]+)\:\s+(.+)", line) + m = _FACTOR_LINE_PATTERN.search(line) if not m: return line diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.2/src/tox/config/reporter.py new/tox-3.18.0/src/tox/config/reporter.py --- old/tox-3.15.2/src/tox/config/reporter.py 2020-06-05 18:40:17.000000000 +0200 +++ new/tox-3.18.0/src/tox/config/reporter.py 2020-07-23 10:48:33.000000000 +0200 @@ -4,6 +4,7 @@ def add_verbosity_commands(parser): parser.add_argument( "-v", + "--verbose", action="count", dest="verbose_level", default=0, @@ -13,6 +14,7 @@ ) parser.add_argument( "-q", + "--quiet", action="count", dest="quiet_level", default=0, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.2/src/tox/interpreters/__init__.py new/tox-3.18.0/src/tox/interpreters/__init__.py --- old/tox-3.15.2/src/tox/interpreters/__init__.py 2020-06-06 10:34:24.000000000 +0200 +++ new/tox-3.18.0/src/tox/interpreters/__init__.py 2020-07-23 10:48:33.000000000 +0200 @@ -72,7 +72,7 @@ def exec_on_interpreter(*args): - from subprocess import Popen, PIPE + from subprocess import PIPE, Popen popen = Popen(args, stdout=PIPE, stderr=PIPE, universal_newlines=True) out, err = popen.communicate() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.2/src/tox/logs/result.py new/tox-3.18.0/src/tox/logs/result.py --- old/tox-3.15.2/src/tox/logs/result.py 2020-06-05 18:40:17.000000000 +0200 +++ new/tox-3.18.0/src/tox/logs/result.py 2020-07-23 10:48:33.000000000 +0200 @@ -2,6 +2,7 @@ from __future__ import absolute_import, unicode_literals import json +import os import socket import sys @@ -21,7 +22,7 @@ "reportversion": "1", "toxversion": __version__, "platform": sys.platform, - "host": socket.getfqdn(), + "host": os.getenv(str("HOSTNAME")) or socket.getfqdn(), "commands": command_log, } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.2/src/tox/session/__init__.py new/tox-3.18.0/src/tox/session/__init__.py --- old/tox-3.15.2/src/tox/session/__init__.py 2020-06-06 10:34:24.000000000 +0200 +++ new/tox-3.18.0/src/tox/session/__init__.py 2020-07-23 10:48:33.000000000 +0200 @@ -46,6 +46,7 @@ def setup_reporter(args): from argparse import ArgumentParser + from tox.config.reporter import add_verbosity_commands parser = ArgumentParser(add_help=False) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.2/src/tox/util/stdlib.py new/tox-3.18.0/src/tox/util/stdlib.py --- old/tox-3.15.2/src/tox/util/stdlib.py 2020-06-05 18:40:17.000000000 +0200 +++ new/tox-3.18.0/src/tox/util/stdlib.py 2020-07-23 10:48:33.000000000 +0200 @@ -24,7 +24,7 @@ def suppress_output(): """suppress both stdout and stderr outputs""" if sys.version_info >= (3, 5): - from contextlib import redirect_stdout, redirect_stderr + from contextlib import redirect_stderr, redirect_stdout else: class _RedirectStream(object): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.2/src/tox/venv.py new/tox-3.18.0/src/tox/venv.py --- old/tox-3.15.2/src/tox/venv.py 2020-06-06 10:34:24.000000000 +0200 +++ new/tox-3.18.0/src/tox/venv.py 2020-07-23 10:48:33.000000000 +0200 @@ -169,7 +169,7 @@ - If it's a local path we will rewrite it as as a relative path. - If venv is True we will check if the command is coming from the venv - or is whitelisted to come from external. + or is allowed to come from external. """ name = str(name) if os.path.isabs(name): @@ -180,7 +180,7 @@ return str(path) if venv: - path = self._venv_lookup_and_check_external_whitelist(name) + path = self._venv_lookup_and_check_external_allowlist(name) else: path = self._normal_lookup(name) @@ -191,7 +191,7 @@ return str(path) # will not be rewritten for reporting - def _venv_lookup_and_check_external_whitelist(self, name): + def _venv_lookup_and_check_external_allowlist(self, name): path = self._venv_lookup(name) if path is None: path = self._normal_lookup(name) @@ -212,7 +212,7 @@ " cmd: {}\n" " env: {}\n" "Maybe you forgot to specify a dependency? " - "See also the whitelist_externals envconfig setting.\n\n" + "See also the allowlist_externals envconfig setting.\n\n" "DEPRECATION WARNING: this will be an error in tox 4 and above!".format( path, self.envconfig.envdir, ), @@ -223,7 +223,16 @@ if tox.INFO.IS_WIN: tryadd += [os.path.normcase(x) for x in os.environ["PATHEXT"].split(os.pathsep)] p = py.path.local(os.path.normcase(str(p))) - for x in self.envconfig.whitelist_externals: + + if self.envconfig.allowlist_externals and self.envconfig.whitelist_externals: + raise tox.exception.ConfigError( + "Either whitelist_externals or allowlist_externals might be specified, not both", + ) + + allowed_externals = ( + self.envconfig.whitelist_externals or self.envconfig.allowlist_externals + ) + for x in allowed_externals: for add in tryadd: if p.fnmatch(x + add): return True diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.2/src/tox/version.py new/tox-3.18.0/src/tox/version.py --- old/tox-3.15.2/src/tox/version.py 2020-06-06 10:40:58.000000000 +0200 +++ new/tox-3.18.0/src/tox/version.py 2020-07-23 10:48:48.000000000 +0200 @@ -1,4 +1,4 @@ # coding: utf-8 from __future__ import unicode_literals -__version__ = '3.15.2' +__version__ = '3.18.0' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.2/src/tox.egg-info/PKG-INFO new/tox-3.18.0/src/tox.egg-info/PKG-INFO --- old/tox-3.15.2/src/tox.egg-info/PKG-INFO 2020-06-06 10:40:58.000000000 +0200 +++ new/tox-3.18.0/src/tox.egg-info/PKG-INFO 2020-07-23 10:48:48.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: tox -Version: 3.15.2 +Version: 3.18.0 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 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.2/src/tox.egg-info/SOURCES.txt new/tox-3.18.0/src/tox.egg-info/SOURCES.txt --- old/tox-3.15.2/src/tox.egg-info/SOURCES.txt 2020-06-06 10:40:58.000000000 +0200 +++ new/tox-3.18.0/src/tox.egg-info/SOURCES.txt 2020-07-23 10:48:48.000000000 +0200 @@ -18,7 +18,6 @@ .github/config.yml .github/ISSUE_TEMPLATE/bug_report.md .github/ISSUE_TEMPLATE/feature_request.md -docs/_draft.rst docs/changelog.rst docs/conf.py docs/config.rst diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.2/src/tox.egg-info/requires.txt new/tox-3.18.0/src/tox.egg-info/requires.txt --- old/tox-3.15.2/src/tox.egg-info/requires.txt 2020-06-06 10:40:58.000000000 +0200 +++ new/tox-3.18.0/src/tox.egg-info/requires.txt 2020-07-23 10:48:48.000000000 +0200 @@ -13,20 +13,20 @@ importlib-metadata<2,>=0.12 [docs] -sphinx>=2.0.0 -towncrier>=18.5.0 pygments-github-lexers>=0.0.5 +sphinx>=2.0.0 sphinxcontrib-autoprogram>=0.1.5 +towncrier>=18.5.0 [testing] +flaky>=3.4.0 freezegun>=0.3.11 pathlib2>=2.3.3 pytest>=4.0.0 pytest-cov>=2.5.1 pytest-mock>=1.10.0 -pytest-xdist>=1.22.2 pytest-randomly>=1.0.0 -flaky>=3.4.0 +pytest-xdist>=1.22.2 [testing:python_version != "3.4"] psutil>=5.6.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.2/tests/integration/test_parallel_interrupt.py new/tox-3.18.0/tests/integration/test_parallel_interrupt.py --- old/tox-3.15.2/tests/integration/test_parallel_interrupt.py 2020-06-05 18:40:17.000000000 +0200 +++ new/tox-3.18.0/tests/integration/test_parallel_interrupt.py 2020-07-23 10:48:33.000000000 +0200 @@ -33,7 +33,7 @@ skip_install = True commands = python -c "open('{{envname}}', 'w').write('done'); \ import time; time.sleep(100)" - whitelist_externals = {} + allowlist_externals = {} """.format( sys.executable, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.2/tests/unit/config/test_config.py new/tox-3.18.0/tests/unit/config/test_config.py --- old/tox-3.15.2/tests/unit/config/test_config.py 2020-06-06 10:34:24.000000000 +0200 +++ new/tox-3.18.0/tests/unit/config/test_config.py 2020-07-23 10:48:33.000000000 +0200 @@ -999,25 +999,25 @@ envconfig = config.envconfigs["py"] assert envconfig.commands == [["abc"]] - def test_whitelist_externals(self, newconfig): + def test_allowlist_externals(self, newconfig): config = newconfig( """ [testenv] - whitelist_externals = xyz + allowlist_externals = xyz commands=xyz [testenv:x] [testenv:py] - whitelist_externals = xyz2 + allowlist_externals = xyz2 commands=abc """, ) assert len(config.envconfigs) == 2 envconfig = config.envconfigs["py"] assert envconfig.commands == [["abc"]] - assert envconfig.whitelist_externals == ["xyz2"] + assert envconfig.allowlist_externals == ["xyz2"] envconfig = config.envconfigs["x"] - assert envconfig.whitelist_externals == ["xyz"] + assert envconfig.allowlist_externals == ["xyz"] def test_changedir(self, newconfig): config = newconfig( @@ -2126,15 +2126,18 @@ config = newconfig(["--notest"], "") assert config.option.notest - def test_verbosity(self, newconfig): - config = newconfig([], "") - assert config.option.verbose_level == 0 - config = newconfig(["-v"], "") - assert config.option.verbose_level == 1 - config = newconfig(["-vv"], "") - assert config.option.verbose_level == 2 + @pytest.mark.parametrize( + "args, expected", + [([], 0), (["-v"], 1), (["-vv"], 2), (["--verbose", "--verbose"], 2), (["-vvv"], 3)], + ) + def test_verbosity(self, args, expected, newconfig): + config = newconfig(args, "") + assert config.option.verbose_level == expected - @pytest.mark.parametrize("args, expected", [([], 0), (["-q"], 1), (["-qq"], 2), (["-qqq"], 3)]) + @pytest.mark.parametrize( + "args, expected", + [([], 0), (["-q"], 1), (["-qq"], 2), (["--quiet", "--quiet"], 2), (["-qqq"], 3)], + ) def test_quiet(self, args, expected, newconfig): config = newconfig(args, "") assert config.option.quiet_level == expected @@ -3121,3 +3124,19 @@ out, err = capsys.readouterr() assert not out assert not err + + +def test_overwrite_skip_install_override(newconfig): + source = """ + [tox] + envlist = py, skip + [testenv:skip] + skip_install = True + """ + config = newconfig(args=[], source=source) + assert config.envconfigs["py"].skip_install is False # by default do not skip + assert config.envconfigs["skip"].skip_install is True + + config = newconfig(args=["--skip-pkg-install"], source=source) + assert config.envconfigs["py"].skip_install is True # skip if the flag is passed + assert config.envconfigs["skip"].skip_install is True diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.2/tests/unit/interpreters/windows/test_windows.py new/tox-3.18.0/tests/unit/interpreters/windows/test_windows.py --- old/tox-3.15.2/tests/unit/interpreters/windows/test_windows.py 2020-06-05 18:40:17.000000000 +0200 +++ new/tox-3.18.0/tests/unit/interpreters/windows/test_windows.py 2020-07-23 10:48:33.000000000 +0200 @@ -3,8 +3,8 @@ @mark_dont_run_on_posix def test_locate_via_pep514(monkeypatch): - from tox.interpreters.py_spec import CURRENT import tox.interpreters.windows + from tox.interpreters.py_spec import CURRENT del tox.interpreters.windows._PY_AVAILABLE[:] exe = tox.interpreters.windows.locate_via_pep514(CURRENT) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.2/tests/unit/package/test_package_parallel.py new/tox-3.18.0/tests/unit/package/test_package_parallel.py --- old/tox-3.15.2/tests/unit/package/test_package_parallel.py 2020-06-05 18:40:17.000000000 +0200 +++ new/tox-3.18.0/tests/unit/package/test_package_parallel.py 2020-07-23 10:48:33.000000000 +0200 @@ -28,9 +28,10 @@ # t1 is artificially blocked to run test command until t2 finishes build # (parallel build package present) # t2 package build finishes both t1 and t2 can now finish and clean up their build packages - import tox.package import threading + import tox.package + t1_build_started = threading.Event() t1_build_blocker = threading.Event() t2_build_started = threading.Event() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.2/tests/unit/session/test_parallel.py new/tox-3.18.0/tests/unit/session/test_parallel.py --- old/tox-3.15.2/tests/unit/session/test_parallel.py 2020-06-05 18:40:17.000000000 +0200 +++ new/tox-3.18.0/tests/unit/session/test_parallel.py 2020-07-23 10:48:33.000000000 +0200 @@ -98,7 +98,7 @@ skip_install = true commands=python -c "import sys, os; sys.stderr.write(str(12345) + os.linesep);\ raise SystemExit(17)" - whitelist_externals = {} + allowlist_externals = {} """.format( sys.executable, ), @@ -129,7 +129,7 @@ skipsdist = true [testenv] -whitelist_externals = {} +allowlist_externals = {} commands = python -c '[print("hello world") for _ in range(5000)]' """.format( @@ -148,7 +148,7 @@ skipsdist = true [testenv] -whitelist_externals = {} +allowlist_externals = {} commands = python -c '[print("hello world") for _ in range(1)]' """.format( @@ -177,7 +177,7 @@ skipsdist = true [testenv] -whitelist_externals = {} +allowlist_externals = {} commands = python -c 'import sys; sys.stderr.write("stderr env"); sys.stdout.write("stdout env")' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.2/tests/unit/test_result.py new/tox-3.18.0/tests/unit/test_result.py --- old/tox-3.15.2/tests/unit/test_result.py 2020-06-05 18:40:17.000000000 +0200 +++ new/tox-3.18.0/tests/unit/test_result.py 2020-07-23 10:48:33.000000000 +0200 @@ -1,3 +1,4 @@ +import functools import os import signal import socket @@ -17,7 +18,13 @@ return pkg -def test_pre_set_header(): [email protected]() +def clean_hostname_envvar(monkeypatch): + monkeypatch.delenv("HOSTNAME", raising=False) + return functools.partial(monkeypatch.setenv, "HOSTNAME") + + +def test_pre_set_header(clean_hostname_envvar): replog = ResultLog() d = replog.dict assert replog.dict == d @@ -30,7 +37,7 @@ assert replog2.dict == replog.dict -def test_set_header(pkg): +def test_set_header(pkg, clean_hostname_envvar): replog = ResultLog() d = replog.dict assert replog.dict == d @@ -48,6 +55,12 @@ assert replog2.dict == replog.dict +def test_hosname_via_envvar(clean_hostname_envvar): + clean_hostname_envvar("toxicity") + replog = ResultLog() + assert replog.dict["host"] == "toxicity" + + def test_addenv_setpython(pkg): replog = ResultLog() envlog = replog.get_envlog("py36") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.2/tests/unit/test_venv.py new/tox-3.18.0/tests/unit/test_venv.py --- old/tox-3.15.2/tests/unit/test_venv.py 2020-06-05 18:40:17.000000000 +0200 +++ new/tox-3.18.0/tests/unit/test_venv.py 2020-07-23 10:48:33.000000000 +0200 @@ -450,6 +450,41 @@ assert venv.status == "commands failed" +def test_install_command_allowlisted(newmocksession): + mocksession = newmocksession( + ["--recreate"], + """\ + [testenv] + allowlist_externals = pytest + xy* + commands= + pytest + xyz + """, + ) + venv = mocksession.getvenv("python") + venv.test() + mocksession.report.expect("warning", "*test command found but not*", invert=True) + assert venv.status == "commands failed" + + +def test_install_command_allowlisted_exclusive(newmocksession): + mocksession = newmocksession( + ["--recreate"], + """\ + [testenv] + allowlist_externals = pytest + whitelist_externals = xy* + commands= + pytest + xyz + """, + ) + venv = mocksession.getvenv("python") + with pytest.raises(tox.exception.ConfigError): + venv.test() + + def test_install_command_not_installed_bash(newmocksession): mocksession = newmocksession( ["--recreate"], diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.2/tests/unit/test_z_cmdline.py new/tox-3.18.0/tests/unit/test_z_cmdline.py --- old/tox-3.15.2/tests/unit/test_z_cmdline.py 2020-06-06 10:34:24.000000000 +0200 +++ new/tox-3.18.0/tests/unit/test_z_cmdline.py 2020-07-23 10:48:33.000000000 +0200 @@ -821,7 +821,7 @@ [testenv] list_dependencies_command=echo commands={envpython} --version - whitelist_externals = echo + allowlist_externals = echo """, }, )
