Hello community,
here is the log from the commit of package python-pytest-runner for openSUSE:Factory checked in at 2017-09-29 11:49:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pytest-runner (Old)
and /work/SRC/openSUSE:Factory/.python-pytest-runner.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pytest-runner"
Fri Sep 29 11:49:39 2017 rev:9 rq:528800 version:2.12.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pytest-runner/python-pytest-runner.changes 2017-03-09 01:46:48.428177201 +0100
+++ /work/SRC/openSUSE:Factory/.python-pytest-runner.new/python-pytest-runner.changes 2017-09-29 11:49:43.558694009 +0200
@@ -1,0 +2,12 @@
+Tue Sep 26 05:22:40 UTC 2017 - arun@gmx.de
+
+- update to version 2.12.1:
+ * #32: Fix support for dependency_links.
+
+- changes from version 2.12:
+ * #30: Rework support for --allow-hosts and --index-url, removing
+ dependence on setuptools.Distribution's private
+ member. Additionally corrects logic in marker evaluation along
+ with unit tests!
+
+-------------------------------------------------------------------
Old:
----
pytest-runner-2.11.1.tar.gz
New:
----
pytest-runner-2.12.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pytest-runner.spec ++++++
--- /var/tmp/diff_new_pack.zGAwrP/_old 2017-09-29 11:49:44.862510147 +0200
+++ /var/tmp/diff_new_pack.zGAwrP/_new 2017-09-29 11:49:44.862510147 +0200
@@ -15,20 +15,21 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
+
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-pytest-runner
-Version: 2.11.1
+Version: 2.12.1
Release: 0
Summary: Simple powerful testing with Python
License: MIT
Group: Development/Languages/Python
Url: http://pytest.org
Source: https://files.pythonhosted.org/packages/source/p/pytest-runner/pytest-runner-%{version}.tar.gz
-BuildRequires: python-rpm-macros
BuildRequires: %{python_module devel}
BuildRequires: %{python_module pytest >= 2.8}
-BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module setuptools_scm >= 1.9}
+BuildRequires: %{python_module setuptools}
+BuildRequires: python-rpm-macros
Requires: python-pytest >= 2.8
Requires: python-setuptools_scm >= 1.9
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ pytest-runner-2.11.1.tar.gz -> pytest-runner-2.12.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-runner-2.11.1/.readthedocs.yml new/pytest-runner-2.12.1/.readthedocs.yml
--- old/pytest-runner-2.11.1/.readthedocs.yml 1970-01-01 01:00:00.000000000 +0100
+++ new/pytest-runner-2.12.1/.readthedocs.yml 2017-09-07 03:59:33.000000000 +0200
@@ -0,0 +1,5 @@
+python:
+ version: 3
+ extra_requirements:
+ - docs
+ pip_install: true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-runner-2.11.1/CHANGES.rst new/pytest-runner-2.12.1/CHANGES.rst
--- old/pytest-runner-2.11.1/CHANGES.rst 2017-02-08 23:01:52.000000000 +0100
+++ new/pytest-runner-2.12.1/CHANGES.rst 2017-09-07 03:59:33.000000000 +0200
@@ -1,3 +1,17 @@
+2.12.1
+~~~~~~
+
+* #32: Fix support for ``dependency_links``.
+
+2.12
+~~~~
+
+* #30: Rework support for ``--allow-hosts`` and
+ ``--index-url``, removing dependence on
+ ``setuptools.Distribution``'s private member.
+ Additionally corrects logic in marker evaluation
+ along with unit tests!
+
2.11.1
~~~~~~
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-runner-2.11.1/PKG-INFO new/pytest-runner-2.12.1/PKG-INFO
--- old/pytest-runner-2.11.1/PKG-INFO 2017-02-08 23:02:15.000000000 +0100
+++ new/pytest-runner-2.12.1/PKG-INFO 2017-09-07 04:03:18.000000000 +0200
@@ -1,6 +1,6 @@
-Metadata-Version: 1.1
+Metadata-Version: 1.2
Name: pytest-runner
-Version: 2.11.1
+Version: 2.12.1
Summary: Invoke py.test as distutils command with dependency resolution
Home-page: https://github.com/pytest-dev/pytest-runner
Author: Jason R. Coombs
@@ -133,3 +133,4 @@
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Framework :: Pytest
+Requires-Python: >=2.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-runner-2.11.1/appveyor.yml new/pytest-runner-2.12.1/appveyor.yml
--- old/pytest-runner-2.11.1/appveyor.yml 1970-01-01 01:00:00.000000000 +0100
+++ new/pytest-runner-2.12.1/appveyor.yml 2017-09-07 03:59:33.000000000 +0200
@@ -0,0 +1,21 @@
+environment:
+
+ APPVEYOR: true
+
+ matrix:
+ - PYTHON: "C:\\Python36-x64"
+ - PYTHON: "C:\\Python27-x64"
+
+install:
+ # symlink python from a directory with a space
+ - "mklink /d \"C:\\Program Files\\Python\" %PYTHON%"
+ - "SET PYTHON=\"C:\\Program Files\\Python\""
+ - "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%"
+
+build: off
+
+test_script:
+ - "python -m pip install tox"
+ - "tox"
+
+version: '{build}'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-runner-2.11.1/docs/conf.py new/pytest-runner-2.12.1/docs/conf.py
--- old/pytest-runner-2.11.1/docs/conf.py 2017-02-08 23:01:52.000000000 +0100
+++ new/pytest-runner-2.12.1/docs/conf.py 2017-09-07 03:59:33.000000000 +0200
@@ -1,54 +1,36 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
-import os
-import sys
-import subprocess
-
-if 'check_output' not in dir(subprocess):
- import subprocess32 as subprocess
-
extensions = [
'sphinx.ext.autodoc',
+ 'jaraco.packaging.sphinx',
'rst.linker',
]
-# General information about the project.
-
-root = os.path.join(os.path.dirname(__file__), '..')
-setup_script = os.path.join(root, 'setup.py')
-fields = ['--name', '--version', '--url', '--author']
-dist_info_cmd = [sys.executable, setup_script] + fields
-output_bytes = subprocess.check_output(dist_info_cmd, cwd=root)
-project, version, url, author = output_bytes.decode('utf-8').strip().split('\n')
-
-copyright = '2015-2017 ' + author
-
-# The full version, including alpha/beta/rc tags.
-release = version
-
master_doc = 'index'
link_files = {
'../CHANGES.rst': dict(
using=dict(
GH='https://github.com',
- project=project,
- url=url,
),
replace=[
dict(
- pattern=r"(Issue )?#(?P<issue>\d+)",
- url='{url}/issues/{issue}',
+ pattern=r'(Issue )?#(?P<issue>\d+)',
+ url='{package_url}/issues/{issue}',
),
dict(
- pattern=r"^(?m)((?Pv?\d+(\.\d+){1,2}))\n[-=]+\n",
- with_scm="{text}\n{rev[timestamp]:%d %b %Y}\n",
+ pattern=r'^(?m)((?Pv?\d+(\.\d+){1,2}))\n[-=]+\n',
+ with_scm='{text}\n{rev[timestamp]:%d %b %Y}\n',
),
dict(
- pattern=r"PEP[- ](?P\d+)",
+ pattern=r'PEP[- ](?P\d+)',
url='https://www.python.org/dev/peps/pep-{pep_number:0>4}/',
),
+ dict(
+ pattern=r'Setuptools #(?P\d+)',
+ url='https://github.com/pypa/setuptools/issues/{setuptools_issue}/',
+ ),
],
),
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-runner-2.11.1/docs/requirements.txt new/pytest-runner-2.12.1/docs/requirements.txt
--- old/pytest-runner-2.11.1/docs/requirements.txt 2017-02-08 23:01:52.000000000 +0100
+++ new/pytest-runner-2.12.1/docs/requirements.txt 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-rst.linker
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-runner-2.11.1/ptr.py new/pytest-runner-2.12.1/ptr.py
--- old/pytest-runner-2.11.1/ptr.py 2017-02-08 23:01:52.000000000 +0100
+++ new/pytest-runner-2.12.1/ptr.py 2017-09-07 03:59:33.000000000 +0200
@@ -17,6 +17,7 @@
import pkg_resources
import setuptools.command.test as orig
+from setuptools import Distribution
@_contextlib.contextmanager
@@ -35,6 +36,46 @@
yield
+class CustomizedDist(Distribution):
+
+ allow_hosts = None
+ index_url = None
+
+ def fetch_build_egg(self, req):
+ """ Specialized version of Distribution.fetch_build_egg
+ that respects respects allow_hosts and index_url. """
+ from setuptools.command.easy_install import easy_install
+ dist = Distribution({'script_args': ['easy_install']})
+ dist.parse_config_files()
+ opts = dist.get_option_dict('easy_install')
+ keep = (
+ 'find_links', 'site_dirs', 'index_url', 'optimize',
+ 'site_dirs', 'allow_hosts'
+ )
+ for key in list(opts):
+ if key not in keep:
+ del opts[key] # don't use any other settings
+ if self.dependency_links:
+ links = self.dependency_links[:]
+ if 'find_links' in opts:
+ links = opts['find_links'][1].split() + links
+ opts['find_links'] = ('setup', links)
+ if self.allow_hosts:
+ opts['allow_hosts'] = ('test', self.allow_hosts)
+ if self.index_url:
+ opts['index_url'] = ('test', self.index_url)
+ install_dir_func = getattr(self, 'get_egg_cache_dir', _os.getcwd)
+ install_dir = install_dir_func()
+ cmd = easy_install(
+ dist, args=["x"], install_dir=install_dir,
+ exclude_scripts=True,
+ always_copy=False, build_directory=None, editable=False,
+ upgrade=False, multi_version=True, no_report=True, user=False
+ )
+ cmd.ensure_finalized()
+ return cmd.easy_install(req)
+
+
class PyTest(orig.test):
"""
>>> import setuptools
@@ -69,8 +110,8 @@
and matches this environment.
"""
return (
- marker
- and not pkg_resources.invalid_marker(marker)
+ not marker
+ or not pkg_resources.invalid_marker(marker)
and pkg_resources.evaluate_marker(marker)
)
@@ -104,10 +145,10 @@
matching_extras = (
reqs
for (name, sep, marker), reqs in spec_extras
- # never include extras that fail to pass marker eval
- if self.marker_passes(marker)
# include unnamed extras or all if self.extras indicated
- and (not name or self.extras)
+ if (not name or self.extras)
+ # never include extras that fail to pass marker eval
+ and self.marker_passes(marker)
)
results = list(map(dist.fetch_build_eggs, matching_extras))
return _itertools.chain.from_iterable(results)
@@ -129,11 +170,15 @@
return null()
def _super_run(self):
- if hasattr(orig.test, 'install_dists'):
- return orig.test.run(self)
-
- # for backward compatibility with setuptools < 27.3
- installed_dists = self.install_dists(self.distribution)
+ dist = CustomizedDist()
+ for attr in 'allow_hosts index_url'.split():
+ setattr(dist, attr, getattr(self, attr))
+ for attr in (
+ 'dependency_links install_requires '
+ 'tests_require extras_require '
+ ).split():
+ setattr(dist, attr, getattr(self.distribution, attr))
+ installed_dists = self.install_dists(dist)
if self.dry_run:
self.announce('skipping tests (dry run)')
return
@@ -146,47 +191,11 @@
Override run to ensure requirements are available in this session (but
don't install them anywhere).
"""
- self._build_egg_fetcher()
self._super_run()
if self.result_code:
raise SystemExit(self.result_code)
return self.result_code
- def _build_egg_fetcher(self):
- """Build an egg fetcher that respects index_url and allow_hosts"""
- # modified from setuptools.dist:Distribution.fetch_build_egg
- from setuptools.command.easy_install import easy_install
- main_dist = self.distribution
- # construct a fake distribution to store the args for easy_install
- dist = main_dist.__class__({'script_args': ['easy_install']})
- dist.parse_config_files()
- opts = dist.get_option_dict('easy_install')
- keep = (
- 'find_links', 'site_dirs', 'index_url', 'optimize',
- 'site_dirs', 'allow_hosts'
- )
- for key in list(opts.keys()):
- if key not in keep:
- del opts[key] # don't use any other settings
- if main_dist.dependency_links:
- links = main_dist.dependency_links[:]
- if 'find_links' in opts:
- links = opts['find_links'][1].split() + links
- opts['find_links'] = ('setup', links)
- if self.allow_hosts:
- opts['allow_hosts'] = ('test', self.allow_hosts)
- if self.index_url:
- opts['index_url'] = ('test', self.index_url)
- install_dir_func = getattr(dist, 'get_egg_cache_dir', _os.getcwd)
- install_dir = install_dir_func()
- cmd = easy_install(
- dist, args=["x"], install_dir=install_dir, exclude_scripts=True,
- always_copy=False, build_directory=None, editable=False,
- upgrade=False, multi_version=True, no_report = True
- )
- cmd.ensure_finalized()
- main_dist._egg_fetcher = cmd
-
@property
def _argv(self):
return ['pytest'] + self.addopts
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-runner-2.11.1/pytest_runner.egg-info/PKG-INFO new/pytest-runner-2.12.1/pytest_runner.egg-info/PKG-INFO
--- old/pytest-runner-2.11.1/pytest_runner.egg-info/PKG-INFO 2017-02-08 23:02:15.000000000 +0100
+++ new/pytest-runner-2.12.1/pytest_runner.egg-info/PKG-INFO 2017-09-07 04:03:18.000000000 +0200
@@ -1,6 +1,6 @@
-Metadata-Version: 1.1
+Metadata-Version: 1.2
Name: pytest-runner
-Version: 2.11.1
+Version: 2.12.1
Summary: Invoke py.test as distutils command with dependency resolution
Home-page: https://github.com/pytest-dev/pytest-runner
Author: Jason R. Coombs
@@ -133,3 +133,4 @@
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Framework :: Pytest
+Requires-Python: >=2.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-runner-2.11.1/pytest_runner.egg-info/SOURCES.txt new/pytest-runner-2.12.1/pytest_runner.egg-info/SOURCES.txt
--- old/pytest-runner-2.11.1/pytest_runner.egg-info/SOURCES.txt 2017-02-08 23:02:15.000000000 +0100
+++ new/pytest-runner-2.12.1/pytest_runner.egg-info/SOURCES.txt 2017-09-07 04:03:18.000000000 +0200
@@ -1,7 +1,9 @@
+.readthedocs.yml
.travis.yml
CHANGES.rst
LICENSE
README.rst
+appveyor.yml
ptr.py
pytest.ini
setup.cfg
@@ -10,11 +12,11 @@
docs/conf.py
docs/history.rst
docs/index.rst
-docs/requirements.txt
pytest_runner.egg-info/PKG-INFO
pytest_runner.egg-info/SOURCES.txt
pytest_runner.egg-info/dependency_links.txt
pytest_runner.egg-info/entry_points.txt
pytest_runner.egg-info/namespace_packages.txt
+pytest_runner.egg-info/requires.txt
pytest_runner.egg-info/top_level.txt
-tests/requirements.txt
\ No newline at end of file
+tests/test_ptr.py
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-runner-2.11.1/pytest_runner.egg-info/requires.txt new/pytest-runner-2.12.1/pytest_runner.egg-info/requires.txt
--- old/pytest-runner-2.11.1/pytest_runner.egg-info/requires.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/pytest-runner-2.12.1/pytest_runner.egg-info/requires.txt 2017-09-07 04:03:18.000000000 +0200
@@ -0,0 +1,13 @@
+
+[docs]
+sphinx
+jaraco.packaging>=3.2
+rst.linker>=1.9
+
+[testing]
+pytest>=2.8
+pytest-sugar
+pytest-virtualenv
+
+[testing:python_version=="2.6"]
+importlib
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-runner-2.11.1/setup.cfg new/pytest-runner-2.12.1/setup.cfg
--- old/pytest-runner-2.11.1/setup.cfg 2017-02-08 23:02:15.000000000 +0100
+++ new/pytest-runner-2.12.1/setup.cfg 2017-09-07 04:03:18.000000000 +0200
@@ -2,11 +2,10 @@
release = dists upload
dists = clean --all sdist bdist_wheel
-[wheel]
+[bdist_wheel]
universal = 1
[egg_info]
tag_build =
tag_date = 0
-tag_svn_revision = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-runner-2.11.1/setup.py new/pytest-runner-2.12.1/setup.py
--- old/pytest-runner-2.11.1/setup.py 2017-02-08 23:01:52.000000000 +0100
+++ new/pytest-runner-2.12.1/setup.py 2017-09-07 03:59:33.000000000 +0200
@@ -11,6 +11,11 @@
name = 'pytest-runner'
description = 'Invoke py.test as distutils command with dependency resolution'
+nspkg_technique = 'native'
+"""
+Does this package use "native" namespace packages or
+pkg_resources "managed" namespace packages?
+"""
params = dict(
name=name,
@@ -20,11 +25,29 @@
description=description or name,
long_description=long_description,
url="https://github.com/pytest-dev/" + name,
- namespace_packages=name.split('.')[:-1],
+ namespace_packages=(
+ name.split('.')[:-1] if nspkg_technique == 'managed'
+ else []
+ ),
py_modules=['ptr'],
+ python_requires='>=2.6',
install_requires=[
],
extras_require={
+ 'testing': [
+ 'pytest>=2.8',
+ 'pytest-sugar',
+ 'pytest-virtualenv',
+ ],
+ 'testing:python_version=="2.6"': [
+ # undeclared dependency of pytest-virtualenv
+ 'importlib',
+ ],
+ 'docs': [
+ 'sphinx',
+ 'jaraco.packaging>=3.2',
+ 'rst.linker>=1.9',
+ ],
},
setup_requires=[
'setuptools_scm>=1.15.0',
@@ -38,7 +61,7 @@
"Programming Language :: Python :: 3",
"Framework :: Pytest",
],
- entry_points = {
+ entry_points={
'distutils.commands': [
'ptr = ptr:PyTest',
'pytest = ptr:PyTest',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-runner-2.11.1/tests/requirements.txt new/pytest-runner-2.12.1/tests/requirements.txt
--- old/pytest-runner-2.11.1/tests/requirements.txt 2017-02-08 23:01:52.000000000 +0100
+++ new/pytest-runner-2.12.1/tests/requirements.txt 1970-01-01 01:00:00.000000000 +0100
@@ -1,2 +0,0 @@
-pytest >= 2.8
-subprocess32; python_version=="2.6"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-runner-2.11.1/tests/test_ptr.py new/pytest-runner-2.12.1/tests/test_ptr.py
--- old/pytest-runner-2.11.1/tests/test_ptr.py 1970-01-01 01:00:00.000000000 +0100
+++ new/pytest-runner-2.12.1/tests/test_ptr.py 2017-09-07 03:59:33.000000000 +0200
@@ -0,0 +1,169 @@
+from __future__ import unicode_literals
+
+import contextlib
+import io
+import os
+import shutil
+import sys
+import tarfile
+import textwrap
+import time
+
+import pytest
+
+
+def DALS(s):
+ "dedent and left-strip"
+ return textwrap.dedent(s).lstrip()
+
+
+def _tarfile_open_ex(*args, **kwargs):
+ """
+ Extend result as a context manager.
+ """
+ return contextlib.closing(tarfile.open(*args, **kwargs))
+
+
+if sys.version_info[:2] < (2, 7) or (3, 0) <= sys.version_info[:2] < (3, 2):
+ tarfile_open = _tarfile_open_ex
+else:
+ tarfile_open = tarfile.open
+
+
+def make_sdist(dist_path, files):
+ """
+ Create a simple sdist tarball at dist_path, containing the files
+ listed in ``files`` as ``(filename, content)`` tuples.
+ """
+
+ with tarfile_open(dist_path, 'w:gz') as dist:
+ for filename, content in files:
+ file_bytes = io.BytesIO(content.encode('utf-8'))
+ file_info = tarfile.TarInfo(name=filename)
+ file_info.size = len(file_bytes.getvalue())
+ file_info.mtime = int(time.time())
+ dist.addfile(file_info, fileobj=file_bytes)
+
+
+@pytest.fixture
+def venv(virtualenv):
+ yield virtualenv
+ # Workaround virtualenv not cleaning itself as it should...
+ virtualenv.delete = True
+ virtualenv.teardown()
+
+
+@pytest.mark.parametrize('setuptools_req, test_args', (
+ ('setuptools==27.2.0', ''),
+ ('setuptools==27.2.0', '--extras'),
+ ('setuptools==27.3.0', ''),
+ ('setuptools==27.3.0', '--extras'),
+ ('setuptools==32.3.1', ''),
+ ('setuptools==32.3.1', '--extras'),
+ ('setuptools==36.3.0', ''),
+ ('setuptools==36.3.0', '--extras'),
+ ('setuptools' , ''),
+ ('setuptools' , '--extras'),
+))
+def test_egg_fetcher(venv, setuptools_req, test_args):
+ test_args = test_args.split()
+ # Install pytest & pytest-runner.
+ venv.run('python setup.py develop', cwd=os.getcwd())
+ venv.run('pip install pytest')
+ # Install setuptools version.
+ venv.run('pip install -U'.split() + [setuptools_req])
+ # For debugging purposes.
+ venv.run('pip freeze --all')
+ # Prepare fake index.
+ index_dir = (venv.workspace / 'index').mkdir()
+ for n in range(5):
+ dist_name = 'barbazquux' + str(n + 1)
+ dist_version = '0.1'
+ dist_sdist = '%s-%s.tar.gz' % (dist_name, dist_version)
+ dist_dir = (index_dir / dist_name).mkdir()
+ make_sdist(dist_dir / dist_sdist, (
+ ('setup.py', textwrap.dedent(
+ '''
+ from setuptools import setup
+ setup(
+ name={dist_name!r},
+ version={dist_version!r},
+ py_modules=[{dist_name!r}],
+ )
+ '''
+ ).format(dist_name=dist_name, dist_version=dist_version)),
+ (dist_name + '.py', ''),
+ ))
+ with (dist_dir / 'index.html').open('w') as fp:
+ fp.write(DALS(
+ '''
+ <!DOCTYPE html><html><body>
+ <a href="{dist_sdist}" rel="internal">{dist_sdist}</a><br/>
+ </body></html>
+ '''
+ ).format(dist_sdist=dist_sdist))
+ # Move barbazquux1 out of the index.
+ shutil.move(index_dir / 'barbazquux1', venv.workspace)
+ barbazquux1_link = (
+ 'file://' + str(venv.workspace.abspath())
+ + '/barbazquux1/barbazquux1-0.1.tar.gz'
+ + '#egg=barbazquux1-0.1'
+ )
+ # Prepare fake project.
+ project_dir = (venv.workspace / 'project-0.1').mkdir()
+ with open(project_dir / 'setup.py', 'w') as fp:
+ fp.write(DALS(
+ '''
+ from setuptools import setup
+ setup(
+ name='project',
+ version='0.1',
+ dependency_links = [
+ {barbazquux1_link!r},
+ ],
+ setup_requires=[
+ 'pytest-runner',
+ ],
+ install_requires=[
+ 'barbazquux1',
+ ],
+ tests_require=[
+ 'pytest',
+ 'barbazquux2',
+ ],
+ extras_require={{
+ ':"{sys_platform}" in sys_platform': 'barbazquux3',
+ ':"barbazquux" in sys_platform': 'barbazquux4',
+ 'extra': 'barbazquux5',
+ }}
+ )
+ ''').format(sys_platform=sys.platform,
+ barbazquux1_link=barbazquux1_link))
+ with open(project_dir / 'setup.cfg', 'w') as fp:
+ fp.write(DALS(
+ '''
+ [easy_install]
+ index_url = .
+ '''))
+ with open(project_dir / 'test_stuff.py', 'w') as fp:
+ fp.write(DALS(
+ '''
+ import pytest
+
+ def test_stuff():
+ import barbazquux1
+ import barbazquux2
+ import barbazquux3
+ with pytest.raises(ImportError):
+ import barbazquux4
+ if {importable_barbazquux5}:
+ import barbazquux5
+ else:
+ with pytest.raises(ImportError):
+ import barbazquux5
+ ''').format(importable_barbazquux5=('--extras' in test_args)))
+ # Run fake project tests.
+ cmd = 'python setup.py pytest'.split()
+ cmd += ['--index-url=' + index_dir.abspath()]
+ cmd += test_args
+ venv.run(cmd, cwd=project_dir)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-runner-2.11.1/tox.ini new/pytest-runner-2.12.1/tox.ini
--- old/pytest-runner-2.11.1/tox.ini 2017-02-08 23:01:52.000000000 +0100
+++ new/pytest-runner-2.12.1/tox.ini 2017-09-07 03:59:33.000000000 +0200
@@ -1,6 +1,7 @@
-[testenv]
-deps =
- -rtests/requirements.txt
+[tox]
+minversion = 2.4
+[testenv]
commands = py.test {posargs}
usedevelop = True
+extras = testing