Imported Upstream version 36.2.5 upstream/36.2.5
authorDongHun Kwak <dh0128.kwak@samsung.com>
Mon, 14 Jan 2019 01:34:07 +0000 (10:34 +0900)
committerDongHun Kwak <dh0128.kwak@samsung.com>
Mon, 14 Jan 2019 01:34:07 +0000 (10:34 +0900)
.travis.yml
CHANGES.rst
setup.cfg
setup.py
setuptools/command/test.py
setuptools/tests/test_easy_install.py
setuptools/tests/test_virtualenv.py
tests/requirements.txt

index dbbe3ea..a5e08a2 100644 (file)
@@ -1,3 +1,4 @@
+dist: trusty
 sudo: false
 language: python
 jobs:
@@ -11,6 +12,7 @@ jobs:
   - python: &latest_py3 3.6
   - python: nightly
   - python: pypy
+  - python: pypy3
   - python: *latest_py3
     env: LANG=C
   - python: *latest_py2
@@ -29,6 +31,7 @@ jobs:
       password:
         secure: tfWrsQMH2bHrWjqnP+08IX1WlkbW94Q30f4d7lCyhWS1FIf/jBDx4jrEILNfMxQ1NCwuBRje5sihj1Ow0BFf0vVrkaeff2IdvnNDEGFduMejaEQJL3s3QrLfpiAvUbtqwyWaHfAdGfk48PovDKTx0ZTvXZKYGXZhxGCYSlG2CE6Y6RDvnEl6Tk8e+LqUohkcSOwxrRwUoyxSnUaavdGohXxDT8MJlfWOXgr2u+KsRrriZqp3l6Fdsnk4IGvy6pXpy42L1HYQyyVu9XyJilR2JTbC6eCp5f8p26093m1Qas49+t6vYb0VLqQe12dO+Jm3v4uztSS5pPQzS7PFyjEYd2Rdb6ijsdbsy1074S4q7G9Sz+T3RsPUwYEJ07lzez8cxP64dtj5j94RL8m35A1Fb1OE8hHN+4c1yLG1gudfXbem+fUhi2eqhJrzQo5vsvDv1xS5x5GIS5ZHgKHCsWcW1Tv+dsFkrhaup3uU6VkOuc9UN+7VPsGEY7NvquGpTm8O1CnGJRzuJg6nbYRGj8ORwDpI0KmrExx6akV92P72fMC/I5TCgbSQSZn370H3Jj40gz1SM30WAli9M+wFHFd4ddMVY65yxj0NLmrP+m1tvnWdKtNh/RHuoW92d9/UFtiA5IhMf1/3djfsjBq6S9NT1uaLkVkTttqrPYJ7hOql8+g=
       distributions: release
+      skip_cleanup: true
       skip_upload_docs: true
 
 cache: pip
index 8412557..75f39d4 100644 (file)
@@ -1,3 +1,10 @@
+v36.2.5
+-------
+
+* #1093: Fix test command handler with extras_require.
+* #1112, #1091, #1115: Now using Trusty containers in
+  Travis for CI and CD.
+
 v36.2.4
 -------
 
index ae2f2d2..4bf7b13 100755 (executable)
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,5 +1,5 @@
 [bumpversion]
-current_version = 36.2.4
+current_version = 36.2.5
 commit = True
 tag = True
 
index bb465f2..9571cfa 100755 (executable)
--- a/setup.py
+++ b/setup.py
@@ -89,7 +89,7 @@ def pypi_link(pkg_filename):
 
 setup_params = dict(
     name="setuptools",
-    version="36.2.4",
+    version="36.2.5",
     description="Easily download, build, install, upgrade, and uninstall "
         "Python packages",
     author="Python Packaging Authority",
index b8863fd..638d0c5 100644 (file)
@@ -11,7 +11,7 @@ from setuptools.extern import six
 from setuptools.extern.six.moves import map, filter
 
 from pkg_resources import (resource_listdir, resource_exists, normalize_path,
-                           working_set, _namespace_packages,
+                           working_set, _namespace_packages, evaluate_marker,
                            add_activation_listener, require, EntryPoint)
 from setuptools import Command
 from setuptools.py31compat import unittest_main
@@ -191,9 +191,13 @@ class test(Command):
         Install the requirements indicated by self.distribution and
         return an iterable of the dists that were built.
         """
-        ir_d = dist.fetch_build_eggs(dist.install_requires or [])
+        ir_d = dist.fetch_build_eggs(dist.install_requires)
         tr_d = dist.fetch_build_eggs(dist.tests_require or [])
-        return itertools.chain(ir_d, tr_d)
+        er_d = dist.fetch_build_eggs(
+            v for k, v in dist.extras_require.items()
+            if k.startswith(':') and evaluate_marker(k[1:])
+        )
+        return itertools.chain(ir_d, tr_d, er_d)
 
     def run(self):
         installed_dists = self.install_dists(self.distribution)
index 26cdd90..c9d396f 100644 (file)
@@ -567,18 +567,6 @@ def create_setup_requires_package(path, distname='foobar', version='0.1',
     return test_pkg
 
 
-def make_trivial_sdist(dist_path, setup_py):
-    """Create a simple sdist tarball at dist_path, containing just a
-    setup.py, the contents of which are provided by the setup_py string.
-    """
-
-    setup_py_file = tarfile.TarInfo(name='setup.py')
-    setup_py_bytes = io.BytesIO(setup_py.encode('utf-8'))
-    setup_py_file.size = len(setup_py_bytes.getvalue())
-    with tarfile_open(dist_path, 'w:gz') as dist:
-        dist.addfile(setup_py_file, fileobj=setup_py_bytes)
-
-
 @pytest.mark.skipif(
     sys.platform.startswith('java') and ei.is_sh(sys.executable),
     reason="Test cannot run under java when executable is sh"
index a7f485a..17b8793 100644 (file)
@@ -6,6 +6,9 @@ from pytest_fixture_config import yield_requires_config
 
 import pytest_virtualenv
 
+from .textwrap import DALS
+from .test_easy_install import make_nspkg_sdist
+
 
 @yield_requires_config(pytest_virtualenv.CONFIG, ['virtualenv_executable'])
 @yield_fixture(scope='function')
@@ -48,3 +51,66 @@ def test_pip_upgrade_from_source(virtualenv):
     virtualenv.run('pip install ' + wheel)
     # And finally try to upgrade from source.
     virtualenv.run('pip install --no-cache-dir --upgrade ' + sdist)
+
+def test_test_command_install_requirements(bare_virtualenv, tmpdir):
+    """
+    Check the test command will install all required dependencies.
+    """
+    bare_virtualenv.run(' && '.join((
+        'cd {source}',
+        'python setup.py develop',
+    )).format(source=SOURCE_DIR))
+    def sdist(distname, version):
+        dist_path = tmpdir.join('%s-%s.tar.gz' % (distname, version))
+        make_nspkg_sdist(str(dist_path), distname, version)
+        return dist_path
+    dependency_links = [
+        str(dist_path)
+        for dist_path in (
+            sdist('foobar', '2.4'),
+            sdist('bits', '4.2'),
+            sdist('bobs', '6.0'),
+            sdist('pieces', '0.6'),
+        )
+    ]
+    with tmpdir.join('setup.py').open('w') as fp:
+        fp.write(DALS(
+            '''
+            from setuptools import setup
+
+            setup(
+                dependency_links={dependency_links!r},
+                install_requires=[
+                    'barbazquux1; sys_platform in ""',
+                    'foobar==2.4',
+                ],
+                setup_requires='bits==4.2',
+                tests_require="""
+                    bobs==6.0
+                """,
+                extras_require={{
+                    'test': ['barbazquux2'],
+                    ':"" in sys_platform': 'pieces==0.6',
+                    ':python_version > "1"': """
+                        pieces
+                        foobar
+                    """,
+                }}
+            )
+            '''.format(dependency_links=dependency_links)))
+    with tmpdir.join('test.py').open('w') as fp:
+        fp.write(DALS(
+            '''
+            import foobar
+            import bits
+            import bobs
+            import pieces
+
+            open('success', 'w').close()
+            '''))
+    # Run test command for test package.
+    bare_virtualenv.run(' && '.join((
+        'cd {tmpdir}',
+        'python setup.py test -s test',
+    )).format(tmpdir=tmpdir))
+    assert tmpdir.join('success').check()
index 44e76ed..c9413b8 100644 (file)
@@ -1,5 +1,5 @@
 importlib; python_version<"2.7"
 mock
-pytest-flake8
+pytest-flake8; python_version>="2.7"
 pytest-virtualenv>=1.2.7
 pytest>=3.0.2