diff options
author | Jason R. Coombs <jaraco@jaraco.com> | 2013-11-02 15:29:33 (GMT) |
---|---|---|
committer | Jason R. Coombs <jaraco@jaraco.com> | 2013-11-02 15:29:33 (GMT) |
commit | 83aafda57500bc84e5e7715e8766170509515eff (patch) | |
tree | 4c96ea73c53ae79cd5aed2e817e910467d2b5a1b /Lib/distutils | |
parent | 090b6b1baf0f976cea93d5a697d26e09ea855b38 (diff) | |
download | cpython-83aafda57500bc84e5e7715e8766170509515eff.zip cpython-83aafda57500bc84e5e7715e8766170509515eff.tar.gz cpython-83aafda57500bc84e5e7715e8766170509515eff.tar.bz2 |
Issue #19286: Adding test demonstrating the failure when a directory is found in the package_data globs.
Diffstat (limited to 'Lib/distutils')
-rw-r--r-- | Lib/distutils/tests/test_build_py.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/Lib/distutils/tests/test_build_py.py b/Lib/distutils/tests/test_build_py.py index 6c6ec20..c4498bc 100644 --- a/Lib/distutils/tests/test_build_py.py +++ b/Lib/distutils/tests/test_build_py.py @@ -99,6 +99,37 @@ class BuildPyTestCase(support.TempdirManager, os.chdir(cwd) sys.stdout = old_stdout + def test_dir_in_package_data(self): + """ + A directory in package_data should not be added to the filelist. + """ + # See bug 19286 + sources = self.mkdtemp() + pkg_dir = os.path.join(sources, "pkg") + + os.mkdir(pkg_dir) + open(os.path.join(pkg_dir, "__init__.py"), "w").close() + + docdir = os.path.join(pkg_dir, "doc") + os.mkdir(docdir) + open(os.path.join(docdir, "testfile"), "w").close() + + # create the directory that could be incorrectly detected as a file + os.mkdir(os.path.join(docdir, 'otherdir')) + + os.chdir(sources) + dist = Distribution({"packages": ["pkg"], + "package_data": {"pkg": ["doc/*"]}}) + # script_name need not exist, it just need to be initialized + dist.script_name = os.path.join(sources, "setup.py") + dist.script_args = ["build"] + dist.parse_command_line() + + try: + dist.run_commands() + except DistutilsFileError: + self.fail("failed package_data when data dir includes a dir") + def test_dont_write_bytecode(self): # makes sure byte_compile is not used pkg_dir, dist = self.create_dist() |