Hello community, here is the log from the commit of package python-pep517 for openSUSE:Factory checked in at 2020-11-17 21:21:00 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-pep517 (Old) and /work/SRC/openSUSE:Factory/.python-pep517.new.24930 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pep517" Tue Nov 17 21:21:00 2020 rev:6 rq:848398 version:0.9.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-pep517/python-pep517.changes 2020-10-23 12:18:39.564537849 +0200 +++ /work/SRC/openSUSE:Factory/.python-pep517.new.24930/python-pep517.changes 2020-11-17 21:21:06.789070297 +0100 @@ -1,0 +2,21 @@ +Fri Nov 13 10:18:51 UTC 2020 - John Vandenberg <jay...@gmail.com> + +- Add Recommends pip & python-wheel >= 0.25 +- Add build dependencies to activate test_meta on Python 3 +- Disable pip --ignore-installed mode in runtime package +- Add doc/*.rst to %doc +- Update to v0.9.1 + * Silence flake8 objections about import in __init__.py +- from 0.9 + * Deprecated the higher level API which handles creating an + environment and installing build dependencies. + This was not very complete, and https://github.com/pypa/build + is designed for this use case + * New python_executable parameter for Pep517HookCaller to run + hooks with a different Python interpreter + * Fix for locating the script to run in the subprocess in some + scenarios + * Fix example in README to get ``build-backend`` correctly + * Various minor improvements to testing + +------------------------------------------------------------------- Old: ---- pep517-0.8.2.tar.gz New: ---- pep517-0.9.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-pep517.spec ++++++ --- /var/tmp/diff_new_pack.UkzA7X/_old 2020-11-17 21:21:07.289071051 +0100 +++ /var/tmp/diff_new_pack.UkzA7X/_new 2020-11-17 21:21:07.293071058 +0100 @@ -18,21 +18,28 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-pep517 -Version: 0.8.2 +Version: 0.9.1 Release: 0 Summary: Wrappers to build Python packages using PEP 517 hooks License: MIT URL: https://github.com/takluyver/pep517 Source: https://files.pythonhosted.org/packages/source/p/pep517/pep517-%{version}.tar.gz -BuildRequires: %{python_module mock} -BuildRequires: %{python_module pytest} BuildRequires: %{python_module setuptools} -BuildRequires: %{python_module testpath} -BuildRequires: %{python_module toml} BuildRequires: fdupes BuildRequires: python-rpm-macros Requires: python-toml +Recommends: python-pip +Recommends: python-wheel >= 0.25 BuildArch: noarch +# SECTION test requirements +BuildRequires: %{python_module mock} +BuildRequires: %{python_module pip} +BuildRequires: %{python_module pytest} +BuildRequires: %{python_module testpath} +BuildRequires: %{python_module toml} +BuildRequires: %{python_module wheel >= 0.25} +BuildRequires: python3-flit-core +# /SECTION %python_subpackages %description @@ -42,6 +49,15 @@ %setup -q -n pep517-%{version} sed -i 's/--flake8//' pytest.ini +# Remove what appears to be overly cautious flag +# that causes tests to require internet, both here +# and the test suites of any dependencies. Tracking at: +# https://github.com/pypa/pep517/issues/101 +sed -i "s/'--ignore-installed',//" pep517/envbuild.py + +# Needed for test_meta to avoid pypi.org fetches +sed -i 's/"flit_core >=2,<3"/"flit_core"/' pyproject.toml + %build %python_build @@ -50,11 +66,16 @@ %python_expand %fdupes %{buildroot}%{$python_sitelib} %check -#test_meta.py: xFx (F like "failed to download package via pip") -%pytest --ignore tests/test_meta.py +%{python_expand export PYTHONPATH=%{buildroot}%{$python_sitelib} +if [ $python = "%{_bindir}/python2" ]; then + $python -m pytest -v -k "not test_meta" +else + $python -m pytest -v +fi +} %files %{python_files} -%doc README.rst +%doc README.rst doc/*.rst %license LICENSE %{python_sitelib}/* ++++++ pep517-0.8.2.tar.gz -> pep517-0.9.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep517-0.8.2/.bumpversion.cfg new/pep517-0.9.1/.bumpversion.cfg --- old/pep517-0.8.2/.bumpversion.cfg 2020-04-01 23:10:19.798095000 +0200 +++ new/pep517-0.9.1/.bumpversion.cfg 2020-10-18 22:41:27.754616500 +0200 @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.8.2 +current_version = 0.9.1 commit = True tag = True diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep517-0.8.2/.gitignore new/pep517-0.9.1/.gitignore --- old/pep517-0.8.2/.gitignore 2020-04-01 23:10:19.798095000 +0200 +++ new/pep517-0.9.1/.gitignore 2020-10-18 22:41:27.754616500 +0200 @@ -3,3 +3,4 @@ /dist/ .tox .pytest_cache +doc/_build/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep517-0.8.2/.travis.yml new/pep517-0.9.1/.travis.yml --- old/pep517-0.8.2/.travis.yml 2020-04-01 23:10:19.798095000 +0200 +++ new/pep517-0.9.1/.travis.yml 2020-10-18 22:41:27.754616500 +0200 @@ -1,5 +1,3 @@ -dist: xenial -sudo: false language: python python: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep517-0.8.2/PKG-INFO new/pep517-0.9.1/PKG-INFO --- old/pep517-0.8.2/PKG-INFO 1970-01-01 01:00:00.000000000 +0100 +++ new/pep517-0.9.1/PKG-INFO 1970-01-01 01:00:00.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: pep517 -Version: 0.8.2 +Version: 0.9.1 Summary: Wrappers to build Python packages using PEP 517 hooks Home-page: https://github.com/pypa/pep517 Author: Thomas Kluyver diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep517-0.8.2/README.rst new/pep517-0.9.1/README.rst --- old/pep517-0.8.2/README.rst 2020-04-01 23:10:19.806090800 +0200 +++ new/pep517-0.9.1/README.rst 2020-10-18 22:41:27.754616500 +0200 @@ -1,3 +1,6 @@ +API to call PEP 517 hooks +========================= + `PEP 517 <https://www.python.org/dev/peps/pep-0517/>`_ specifies a standard API for systems which build Python packages. @@ -8,28 +11,10 @@ the current process. - Fallbacks for the optional hooks, so that frontends can call the hooks without checking which are defined. -- Higher-level functions which install the build dependencies into a - temporary environment and build a wheel/sdist using them. Run the tests with ``pytest`` or `tox <https://pypi.org/project/tox>`_. -High level usage, with build requirements handled: - -.. code-block:: python - - import os - from pep517.envbuild import build_wheel, build_sdist - - src = 'path/to/source' # Folder containing 'pyproject.toml' - destination = 'also/a/folder' - whl_filename = build_wheel(src, destination) - assert os.path.isfile(os.path.join(destination, whl_filename)) - - targz_filename = build_sdist(src, destination) - assert os.path.isfile(os.path.join(destination, targz_filename)) - -Lower level usage—you are responsible for ensuring build requirements are -available: +Usage—you are responsible for ensuring build requirements are available: .. code-block:: python @@ -42,21 +27,50 @@ build_sys = toml.load(f)['build-system'] print(build_sys['requires']) # List of static requirements + # The caller is responsible for installing these and running the hooks in + # an environment where they are available. hooks = Pep517HookCaller( src, - build_backend=build_sys['build_backend'], + build_backend=build_sys['build-backend'], backend_path=build_sys.get('backend-path'), ) config_options = {} # Optional parameters for backend # List of dynamic requirements: print(hooks.get_requires_for_build_wheel(config_options)) + # Again, the caller is responsible for installing these build requirements destination = 'also/a/folder' whl_filename = hooks.build_wheel(destination, config_options) assert os.path.isfile(os.path.join(destination, whl_filename)) +Deprecated high-level +--------------------- + +For now, ``pep517`` also contains higher-level functions which install the build +dependencies into a temporary environment and build a wheel/sdist using them. +This is a rough implementation, e.g. it does not do proper build isolation. +The `PyPA build project <https://github.com/pypa/build>`_ is recommended as an +alternative, although it's still quite young in October 2020. +This layer of functionality in ``pep517`` is now deprecated, but won't be +removed for some time, as there is code relying on it. + +High level usage, with build requirements handled: + +.. code-block:: python + + import os + from pep517.envbuild import build_wheel, build_sdist + + src = 'path/to/source' # Folder containing 'pyproject.toml' + destination = 'also/a/folder' + whl_filename = build_wheel(src, destination) + assert os.path.isfile(os.path.join(destination, whl_filename)) + + targz_filename = build_sdist(src, destination) + assert os.path.isfile(os.path.join(destination, targz_filename)) + To test the build backend for a project, run in a system shell: .. code-block:: shell @@ -69,6 +83,4 @@ python -m pep517.build path/to/source # source dir containing pyproject.toml -This 'build' module should be considered experimental while the PyPA `decides -on the best place for this functionality -<https://github.com/pypa/packaging-problems/issues/219>`_. +All of this high-level functionality is deprecated. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep517-0.8.2/doc/Makefile new/pep517-0.9.1/doc/Makefile --- old/pep517-0.8.2/doc/Makefile 1970-01-01 01:00:00.000000000 +0100 +++ new/pep517-0.9.1/doc/Makefile 2020-10-18 22:41:27.754616500 +0200 @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep517-0.8.2/doc/callhooks.rst new/pep517-0.9.1/doc/callhooks.rst --- old/pep517-0.8.2/doc/callhooks.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/pep517-0.9.1/doc/callhooks.rst 2020-10-18 22:41:27.754616500 +0200 @@ -0,0 +1,42 @@ +API reference +============= + +.. module:: pep517 + +Calling the build system +------------------------ + +.. autoclass:: Pep517HookCaller + + .. automethod:: get_requires_for_build_sdist + + .. automethod:: get_requires_for_build_wheel + + .. automethod:: prepare_metadata_for_build_wheel + + .. automethod:: build_sdist + + .. automethod:: build_wheel + + .. automethod:: subprocess_runner + +Subprocess runners +------------------ + +These functions may be provided when creating :class:`Pep517HookCaller`, +or to :meth:`Pep517HookCaller.subprocess_runner`. + +.. autofunction:: default_subprocess_runner + +.. autofunction:: quiet_subprocess_runner + +Exceptions +---------- + +.. autoexception:: BackendUnavailable + +.. autoexception:: BackendInvalid + +.. autoexception:: HookMissing + +.. autoexception:: UnsupportedOperation diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep517-0.8.2/doc/changelog.rst new/pep517-0.9.1/doc/changelog.rst --- old/pep517-0.8.2/doc/changelog.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/pep517-0.9.1/doc/changelog.rst 2020-10-18 22:41:27.754616500 +0200 @@ -0,0 +1,16 @@ +Changelog +========= + +0.9 +--- + +- Deprecated the higher level API which handles creating an environment and + installing build dependencies. This was not very complete, and the `PyPA build + project <https://github.com/pypa/build>`_ is designed for this use case. +- New ``python_executable`` parameter for :class:`.Pep517HookCaller` to run hooks + with a different Python interpreter. +- Fix for locating the script to run in the subprocess in some scenarios. +- Fix example in README to get ``build-backend`` correctly. +- Created `documentation on Read the Docs + <https://pep517.readthedocs.io/en/latest/index.html>`__ +- Various minor improvements to testing. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep517-0.8.2/doc/conf.py new/pep517-0.9.1/doc/conf.py --- old/pep517-0.8.2/doc/conf.py 1970-01-01 01:00:00.000000000 +0100 +++ new/pep517-0.9.1/doc/conf.py 2020-10-18 22:41:27.754616500 +0200 @@ -0,0 +1,57 @@ +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +import os +import sys +sys.path.insert(0, os.path.abspath('..')) + + +# -- Project information ----------------------------------------------------- + +project = 'pep517' +copyright = '2020, Thomas Kluyver' +author = 'Thomas Kluyver' + + +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + 'sphinx.ext.autodoc', + 'sphinx_rtd_theme', +] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] + +# Tell RTD to use index.rst, not contents.rst +# https://github.com/readthedocs/readthedocs.org/issues/2569 +master_doc = 'index' + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = 'sphinx_rtd_theme' + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep517-0.8.2/doc/index.rst new/pep517-0.9.1/doc/index.rst --- old/pep517-0.8.2/doc/index.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/pep517-0.9.1/doc/index.rst 2020-10-18 22:41:27.754616500 +0200 @@ -0,0 +1,20 @@ +pep517 +====== + +This package provides an API to call the hooks defined in :pep:`517`. + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + callhooks + changelog + + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep517-0.8.2/doc/make.bat new/pep517-0.9.1/doc/make.bat --- old/pep517-0.8.2/doc/make.bat 1970-01-01 01:00:00.000000000 +0100 +++ new/pep517-0.9.1/doc/make.bat 2020-10-18 22:41:27.754616500 +0200 @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=. +set BUILDDIR=_build + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep517-0.8.2/doc/requirements.txt new/pep517-0.9.1/doc/requirements.txt --- old/pep517-0.8.2/doc/requirements.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/pep517-0.9.1/doc/requirements.txt 2020-10-18 22:41:27.754616500 +0200 @@ -0,0 +1 @@ +toml diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep517-0.8.2/pep517/__init__.py new/pep517-0.9.1/pep517/__init__.py --- old/pep517-0.8.2/pep517/__init__.py 2020-04-01 23:10:19.806090800 +0200 +++ new/pep517-0.9.1/pep517/__init__.py 2020-10-18 22:41:27.754616500 +0200 @@ -1,4 +1,6 @@ """Wrappers to build Python packages using PEP 517 hooks """ -__version__ = '0.8.2' +__version__ = '0.9.1' + +from .wrappers import * # noqa: F401, F403 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep517-0.8.2/pep517/wrappers.py new/pep517-0.9.1/pep517/wrappers.py --- old/pep517-0.8.2/pep517/wrappers.py 2020-04-01 23:10:19.810088900 +0200 +++ new/pep517-0.9.1/pep517/wrappers.py 2020-10-18 22:41:27.754616500 +0200 @@ -9,6 +9,15 @@ from . import compat +__all__ = [ + 'BackendUnavailable', + 'BackendInvalid', + 'HookMissing', + 'UnsupportedOperation', + 'default_subprocess_runner', + 'quiet_subprocess_runner', + 'Pep517HookCaller', +] try: import importlib.resources as resources @@ -102,19 +111,22 @@ class Pep517HookCaller(object): """A wrapper around a source directory to be built with a PEP 517 backend. - source_dir : The path to the source directory, containing pyproject.toml. - build_backend : The build backend spec, as per PEP 517, from + :param source_dir: The path to the source directory, containing pyproject.toml. - backend_path : The backend path, as per PEP 517, from pyproject.toml. - runner : A callable that invokes the wrapper subprocess. + :param build_backend: The build backend spec, as per PEP 517, from + pyproject.toml. + :param backend_path: The backend path, as per PEP 517, from pyproject.toml. + :param runner: A callable that invokes the wrapper subprocess. + :param python_executable: The Python executable used to invoke the backend The 'runner', if provided, must expect the following: - cmd : a list of strings representing the command and arguments to - execute, as would be passed to e.g. 'subprocess.check_call'. - cwd : a string representing the working directory that must be - used for the subprocess. Corresponds to the provided source_dir. - extra_environ : a dict mapping environment variable names to values - which must be set for the subprocess execution. + + - cmd: a list of strings representing the command and arguments to + execute, as would be passed to e.g. 'subprocess.check_call'. + - cwd: a string representing the working directory that must be + used for the subprocess. Corresponds to the provided source_dir. + - extra_environ: a dict mapping environment variable names to values + which must be set for the subprocess execution. """ def __init__( self, @@ -122,6 +134,7 @@ build_backend, backend_path=None, runner=None, + python_executable=None, ): if runner is None: runner = default_subprocess_runner @@ -134,6 +147,9 @@ ] self.backend_path = backend_path self._subprocess_runner = runner + if not python_executable: + python_executable = sys.executable + self.python_executable = python_executable @contextmanager def subprocess_runner(self, runner): @@ -150,7 +166,8 @@ def get_requires_for_build_wheel(self, config_settings=None): """Identify packages required for building a wheel - Returns a list of dependency specifications, e.g.: + Returns a list of dependency specifications, e.g.:: + ["wheel >= 0.25", "setuptools"] This does not include requirements specified in pyproject.toml. @@ -164,7 +181,7 @@ def prepare_metadata_for_build_wheel( self, metadata_directory, config_settings=None, _allow_fallback=True): - """Prepare a *.dist-info folder with metadata for this project. + """Prepare a ``*.dist-info`` folder with metadata for this project. Returns the name of the newly created folder. @@ -202,7 +219,8 @@ def get_requires_for_build_sdist(self, config_settings=None): """Identify packages required for building a wheel - Returns a list of dependency specifications, e.g.: + Returns a list of dependency specifications, e.g.:: + ["setuptools >= 26"] This does not include requirements specified in pyproject.toml. @@ -252,8 +270,9 @@ # Run the hook in a subprocess with _in_proc_script_path() as script: + python = self.python_executable self._subprocess_runner( - [sys.executable, str(script), hook_name, td], + [python, abspath(str(script)), hook_name, td], cwd=self.source_dir, extra_environ=extra_environ ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep517-0.8.2/setup.py new/pep517-0.9.1/setup.py --- old/pep517-0.8.2/setup.py 1970-01-01 01:00:00.000000000 +0100 +++ new/pep517-0.9.1/setup.py 1970-01-01 01:00:00.000000000 +0100 @@ -16,7 +16,7 @@ {":python_version<'3.8'": ['importlib_metadata', 'zipp']} setup(name='pep517', - version='0.8.2', + version='0.9.1', description='Wrappers to build Python packages using PEP 517 hooks', author='Thomas Kluyver', author_email='tho...@kluyver.me.uk', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep517-0.8.2/tests/test_call_hooks.py new/pep517-0.9.1/tests/test_call_hooks.py --- old/pep517-0.8.2/tests/test_call_hooks.py 2020-04-01 23:10:19.810088900 +0200 +++ new/pep517-0.9.1/tests/test_call_hooks.py 2020-10-18 22:41:27.758614500 +0200 @@ -6,12 +6,18 @@ import pytest import toml import zipfile +import sys from mock import Mock from pep517.wrappers import Pep517HookCaller, default_subprocess_runner from pep517.wrappers import UnsupportedOperation, BackendUnavailable + +if sys.version_info[0] == 2: + FileNotFoundError = IOError + + SAMPLES_DIR = pjoin(dirname(abspath(__file__)), 'samples') BUILDSYS_PKGS = pjoin(SAMPLES_DIR, 'buildsys_pkgs') @@ -131,3 +137,17 @@ hooks.get_requires_for_build_wheel() runner.assert_called_once() + + +def test_custom_python_executable(monkeypatch, tmpdir): + monkeypatch.setenv('PYTHONPATH', BUILDSYS_PKGS) + + runner = Mock(autospec=default_subprocess_runner) + hooks = get_hooks('pkg1', runner=runner, python_executable='some-python') + + with hooks.subprocess_runner(runner): + with pytest.raises(FileNotFoundError): + # output.json is missing because we didn't actually run the hook + hooks.get_requires_for_build_wheel() + runner.assert_called_once() + assert runner.call_args[0][0][0] == 'some-python' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep517-0.8.2/tests/test_inplace_hooks.py new/pep517-0.9.1/tests/test_inplace_hooks.py --- old/pep517-0.8.2/tests/test_inplace_hooks.py 2020-04-01 23:10:19.810088900 +0200 +++ new/pep517-0.9.1/tests/test_inplace_hooks.py 2020-10-18 22:41:27.758614500 +0200 @@ -7,6 +7,7 @@ SAMPLES_DIR = pjoin(dirname(abspath(__file__)), 'samples') BUILDSYS_PKGS = pjoin(SAMPLES_DIR, 'buildsys_pkgs') +SOURCE_DIR = pjoin(SAMPLES_DIR, 'pkg1') def get_hooks(pkg, backend=None, path=None): @@ -20,19 +21,24 @@ return Pep517HookCaller(source_dir, backend, path) -def test_backend_path_within_tree(): - source_dir = pjoin(SAMPLES_DIR, 'pkg1') - assert Pep517HookCaller(source_dir, 'dummy', ['.', 'subdir']) - assert Pep517HookCaller(source_dir, 'dummy', ['../pkg1', 'subdir/..']) +@pytest.mark.parametrize('backend_path', [ + ['.', 'subdir'], + ['../pkg1', 'subdir/..'], +]) +def test_backend_path_within_tree(backend_path): + Pep517HookCaller(SOURCE_DIR, 'dummy', backend_path) + + +@pytest.mark.parametrize('backend_path', [ + [SOURCE_DIR], + ['.', '..'], + ['subdir/../..'], + ['/'], +]) +def test_backend_out_of_tree(backend_path): # TODO: Do we want to insist on ValueError, or invent another exception? with pytest.raises(Exception): - assert Pep517HookCaller(source_dir, 'dummy', [source_dir]) - with pytest.raises(Exception): - Pep517HookCaller(source_dir, 'dummy', ['.', '..']) - with pytest.raises(Exception): - Pep517HookCaller(source_dir, 'dummy', ['subdir/../..']) - with pytest.raises(Exception): - Pep517HookCaller(source_dir, 'dummy', ['/']) + Pep517HookCaller(SOURCE_DIR, 'dummy', backend_path) def test_intree_backend(): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep517-0.8.2/tox.ini new/pep517-0.9.1/tox.ini --- old/pep517-0.8.2/tox.ini 2020-04-01 23:10:19.810088900 +0200 +++ new/pep517-0.9.1/tox.ini 2020-10-18 22:41:27.758614500 +0200 @@ -1,5 +1,5 @@ [tox] -envlist = py27, py34, py35, py36, py37, pypy, pypy3 +envlist = py27, py34, py35, py36, py37, py38, pypy, pypy3 skipsdist = true [testenv] _______________________________________________ openSUSE Commits mailing list -- commit@lists.opensuse.org To unsubscribe, email commit-le...@lists.opensuse.org List Netiquette: https://en.opensuse.org/openSUSE:Mailing_list_netiquette List Archives: https://lists.opensuse.org/archives/list/commit@lists.opensuse.org