summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorFred Drake <fdrake@acm.org>2004-06-17 20:16:19 (GMT)
committerFred Drake <fdrake@acm.org>2004-06-17 20:16:19 (GMT)
commitb849eddde6722549f9df1be1cd6ea7cf79d28807 (patch)
tree93e45c6a1faba79d1f777f89e69422991c2dd32f /Lib
parentb8ab8b6da809f9ceecd715113b2c860235186b02 (diff)
downloadcpython-b849eddde6722549f9df1be1cd6ea7cf79d28807.zip
cpython-b849eddde6722549f9df1be1cd6ea7cf79d28807.tar.gz
cpython-b849eddde6722549f9df1be1cd6ea7cf79d28807.tar.bz2
fix bug: list of data files was initialized too soon in build_py
Diffstat (limited to 'Lib')
-rw-r--r--Lib/distutils/command/build_py.py2
-rw-r--r--Lib/distutils/tests/test_build_py.py50
2 files changed, 51 insertions, 1 deletions
diff --git a/Lib/distutils/command/build_py.py b/Lib/distutils/command/build_py.py
index 329b55a..cfbab26 100644
--- a/Lib/distutils/command/build_py.py
+++ b/Lib/distutils/command/build_py.py
@@ -53,11 +53,11 @@ class build_py (Command):
self.packages = self.distribution.packages
self.py_modules = self.distribution.py_modules
self.package_data = self.distribution.package_data
- self.data_files = self.get_data_files()
self.package_dir = {}
if self.distribution.package_dir:
for name, path in self.distribution.package_dir.items():
self.package_dir[name] = convert_path(path)
+ self.data_files = self.get_data_files()
# Ick, copied straight from install_lib.py (fancy_getopt needs a
# type system! Hell, *everything* needs a type system!!!)
diff --git a/Lib/distutils/tests/test_build_py.py b/Lib/distutils/tests/test_build_py.py
new file mode 100644
index 0000000..6cdce2c
--- /dev/null
+++ b/Lib/distutils/tests/test_build_py.py
@@ -0,0 +1,50 @@
+"""Tests for distutils.command.build_py."""
+
+import os
+import unittest
+
+from distutils.command.build_py import build_py
+from distutils.core import Distribution
+
+from distutils.tests import support
+
+
+class BuildPyTestCase(support.TempdirManager, unittest.TestCase):
+
+ def test_package_data(self):
+ sources = self.mkdtemp()
+ f = open(os.path.join(sources, "__init__.py"), "w")
+ f.write("# Pretend this is a package.")
+ f.close()
+ f = open(os.path.join(sources, "README.txt"), "w")
+ f.write("Info about this package")
+ f.close()
+
+ destination = self.mkdtemp()
+
+ dist = Distribution({"packages": ["pkg"],
+ "package_dir": {"pkg": sources}})
+ # script_name need not exist, it just need to be initialized
+ dist.script_name = os.path.join(sources, "setup.py")
+ dist.command_obj["build"] = support.DummyCommand(
+ force=0,
+ build_lib=destination)
+ dist.packages = ["pkg"]
+ dist.package_data = {"pkg": ["README.txt"]}
+ dist.package_dir = {"pkg": sources}
+
+ cmd = build_py(dist)
+ cmd.ensure_finalized()
+ self.assertEqual(cmd.package_data, dist.package_data)
+
+ cmd.run()
+
+ self.assertEqual(len(cmd.get_outputs()), 2)
+ pkgdest = os.path.join(destination, "pkg")
+ files = os.listdir(pkgdest)
+ self.assert_("__init__.py" in files)
+ self.assert_("README.txt" in files)
+
+
+def test_suite():
+ return unittest.makeSuite(BuildPyTestCase)