summaryrefslogtreecommitdiff
path: root/setuptools
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2018-10-25 11:02:58 -0400
committerGitHub <noreply@github.com>2018-10-25 11:02:58 -0400
commitd6d9da82f6437d549ddc3d4ece0e2011abc5425a (patch)
tree6d0eead55c274f44a13c2f0fda4389c835c2a973 /setuptools
parent8c22c3b5ac0a5a293b03b79686e53f885d71cba4 (diff)
parentb77ea8cbc705c1ae4c84870da895eafe2aac94a2 (diff)
downloadpython-setuptools-git-d6d9da82f6437d549ddc3d4ece0e2011abc5425a.tar.gz
Merge pull request #1520 from ssato/data_files_2
Add data_files support in setup.cfg
Diffstat (limited to 'setuptools')
-rw-r--r--setuptools/config.py8
-rw-r--r--setuptools/tests/test_config.py17
2 files changed, 25 insertions, 0 deletions
diff --git a/setuptools/config.py b/setuptools/config.py
index 0da3dbc9..73a3bf70 100644
--- a/setuptools/config.py
+++ b/setuptools/config.py
@@ -598,3 +598,11 @@ class ConfigOptionsHandler(ConfigHandler):
parse_list = partial(self._parse_list, separator=';')
self['extras_require'] = self._parse_section_to_dict(
section_options, parse_list)
+
+ def parse_section_data_files(self, section_options):
+ """Parses `data_files` configuration file section.
+
+ :param dict section_options:
+ """
+ parsed = self._parse_section_to_dict(section_options, self._parse_list)
+ self['data_files'] = [(k, v) for k, v in parsed.items()]
diff --git a/setuptools/tests/test_config.py b/setuptools/tests/test_config.py
index acf22154..76759ec5 100644
--- a/setuptools/tests/test_config.py
+++ b/setuptools/tests/test_config.py
@@ -703,6 +703,23 @@ class TestOptions:
with get_dist(tmpdir) as dist:
assert dist.entry_points == expected
+ def test_data_files(self, tmpdir):
+ fake_env(
+ tmpdir,
+ '[options.data_files]\n'
+ 'cfg =\n'
+ ' a/b.conf\n'
+ ' c/d.conf\n'
+ 'data = e/f.dat, g/h.dat\n'
+ )
+
+ with get_dist(tmpdir) as dist:
+ expected = [
+ ('cfg', ['a/b.conf', 'c/d.conf']),
+ ('data', ['e/f.dat', 'g/h.dat']),
+ ]
+ assert sorted(dist.data_files) == sorted(expected)
+
saved_dist_init = _Distribution.__init__
class TestExternalSetters:
# During creation of the setuptools Distribution() object, we call