Imported Upstream version 36.2.3 upstream/36.2.3
authorDongHun Kwak <dh0128.kwak@samsung.com>
Mon, 14 Jan 2019 01:33:43 +0000 (10:33 +0900)
committerDongHun Kwak <dh0128.kwak@samsung.com>
Mon, 14 Jan 2019 01:33:43 +0000 (10:33 +0900)
CHANGES.rst
setup.cfg
setup.py
setuptools/dist.py
setuptools/tests/test_egg_info.py

index 9a16816..9af6001 100644 (file)
@@ -1,3 +1,8 @@
+v36.2.3
+-------
+
+* #1102: Restore behavior for empty extras.
+
 v36.2.2
 -------
 
index 33024f5..5633027 100755 (executable)
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,5 +1,5 @@
 [bumpversion]
-current_version = 36.2.2
+current_version = 36.2.3
 commit = True
 tag = True
 
index 5c48f74..8c21a37 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.2",
+    version="36.2.3",
     description="Easily download, build, install, upgrade, and uninstall "
         "Python packages",
     author="Python Packaging Authority",
index 0787261..dfe700b 100644 (file)
@@ -369,6 +369,8 @@ class Distribution(Distribution_parse_config_files, _Distribution):
         spec_ext_reqs = getattr(self, 'extras_require', None) or {}
         self._tmp_extras_require = defaultdict(list)
         for section, v in spec_ext_reqs.items():
+            # Do not strip empty sections.
+            self._tmp_extras_require[section]
             for r in pkg_resources.parse_requirements(v):
                 suffix = self._suffix_for(r)
                 self._tmp_extras_require[section + suffix].append(r)
index d9d4ec3..9ea7cdc 100644 (file)
@@ -274,6 +274,8 @@ class TestEggInfo(object):
         with open(requires_txt) as fp:
             install_requires = fp.read()
         expected_requires = DALS('''
+             [extra]
+
              [extra:{marker}]
              barbazquux[test]
              ''').format(marker=self.mismatch_marker_alternate)
@@ -306,6 +308,8 @@ class TestEggInfo(object):
         with open(requires_txt) as fp:
             install_requires = fp.read()
         expected_requires = DALS('''
+             [extra]
+
              [extra:{marker}]
              barbazquux
              ''').format(marker=self.mismatch_marker_alternate)
@@ -328,6 +332,20 @@ class TestEggInfo(object):
             self._run_install_command(tmpdir_cwd, env)
         assert glob.glob(os.path.join(env.paths['lib'], 'barbazquux*')) == []
 
+    def test_extras_require_with_empty_section(self, tmpdir_cwd, env):
+        tmpl = 'extras_require={{"empty": []}},'
+        req = tmpl.format(marker=self.invalid_marker)
+        self._setup_script_with_requires(req)
+        self._run_install_command(tmpdir_cwd, env)
+        egg_info_dir = self._find_egg_info_files(env.paths['lib']).base
+        requires_txt = os.path.join(egg_info_dir, 'requires.txt')
+        with open(requires_txt) as fp:
+            install_requires = fp.read()
+        expected_requires = DALS('''
+             [empty]
+             ''').format(marker=self.mismatch_marker_alternate)
+        assert install_requires.lstrip() == expected_requires
+
     def test_python_requires_egg_info(self, tmpdir_cwd, env):
         self._setup_script_with_requires(
             """python_requires='>=2.7.12',""")