PATH:
lib64
/
python2.7
/
distutils
/
tests
"""Tests for distutils.command.build_py.""" import os import sys import StringIO import unittest from distutils.command.build_py import build_py from distutils.core import Distribution from distutils.errors import DistutilsFileError from distutils.tests import support from test.test_support import run_unittest class BuildPyTestCase(support.TempdirManager, support.LoggingSilencer, unittest.TestCase): def test_package_data(self): sources = self.mkdtemp() f = open(os.path.join(sources, "__init__.py"), "w") try: f.write("# Pretend this is a package.") finally: f.close() f = open(os.path.join(sources, "README.txt"), "w") try: f.write("Info about this package") finally: 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.compile = 1 cmd.ensure_finalized() self.assertEqual(cmd.package_data, dist.package_data) cmd.run() # This makes sure the list of outputs includes byte-compiled # files for Python modules but not for package data files # (there shouldn't *be* byte-code files for those!). # self.assertEqual(len(cmd.get_outputs()), 3) pkgdest = os.path.join(destination, "pkg") files = os.listdir(pkgdest) self.assertIn("__init__.py", files) self.assertIn("README.txt", files) # XXX even with -O, distutils writes pyc, not pyo; bug? if sys.dont_write_bytecode: self.assertNotIn("__init__.pyc", files) else: self.assertIn("__init__.pyc", files) def test_empty_package_dir(self): # See SF 1668596/1720897. cwd = os.getcwd() # create the distribution files. sources = self.mkdtemp() open(os.path.join(sources, "__init__.py"), "w").close() testdir = os.path.join(sources, "doc") os.mkdir(testdir) open(os.path.join(testdir, "testfile"), "w").close() os.chdir(sources) old_stdout = sys.stdout sys.stdout = StringIO.StringIO() try: dist = Distribution({"packages": ["pkg"], "package_dir": {"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 test when package_dir is ''") finally: # Restore state. 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() cmd = build_py(dist) cmd.compile = 1 cmd.optimize = 1 old_dont_write_bytecode = sys.dont_write_bytecode sys.dont_write_bytecode = True try: cmd.byte_compile([]) finally: sys.dont_write_bytecode = old_dont_write_bytecode self.assertIn('byte-compiling is disabled', self.logs[0][1]) def test_suite(): return unittest.makeSuite(BuildPyTestCase) if __name__ == "__main__": run_unittest(test_suite())
[+]
..
[-] test_install.py
[open]
[-] test_install_lib.py
[open]
[-] test_build_ext.pyc
[open]
[-] test_config_cmd.pyc
[open]
[-] test_versionpredicate.py
[open]
[-] test_archive_util.pyo
[open]
[-] test_dir_util.py
[open]
[-] test_build_ext.pyo
[open]
[-] test_spawn.pyc
[open]
[-] test_bdist_msi.py
[open]
[-] test_dir_util.pyc
[open]
[-] test_build_py.pyc
[open]
[-] test_util.pyc
[open]
[-] test_core.pyo
[open]
[-] test_upload.pyc
[open]
[-] test_sdist.py
[open]
[-] test_install_headers.py
[open]
[-] test_install_data.pyc
[open]
[-] test_version.pyo
[open]
[-] test_bdist_wininst.pyc
[open]
[-] test_sdist.pyo
[open]
[-] test_bdist_rpm.py
[open]
[-] test_ccompiler.pyo
[open]
[-] test_msvc9compiler.py
[open]
[-] test_install_headers.pyc
[open]
[-] test_install_lib.pyc
[open]
[-] test_bdist_rpm.pyo
[open]
[-] test_install_scripts.pyo
[open]
[-] setuptools_build_ext.pyc
[open]
[-] test_msvc9compiler.pyo
[open]
[-] test_build_py.py
[open]
[-] test_install.py.debug-build
[open]
[-] test_build_clib.pyo
[open]
[-] test_dep_util.pyc
[open]
[-] test_text_file.py
[open]
[-] test_install.pyc
[open]
[-] test_install_scripts.py
[open]
[-] setuptools_extension.py
[open]
[-] includetest.rst
[open]
[-] test_build_scripts.pyo
[open]
[-] test_bdist.pyc
[open]
[-] support.py
[open]
[-] test_build_clib.pyc
[open]
[-] test_file_util.pyo
[open]
[-] test_core.pyc
[open]
[-] test_register.pyo
[open]
[-] test_spawn.py
[open]
[-] __init__.pyc
[open]
[-] test_archive_util.pyc
[open]
[-] test_dist.pyo
[open]
[-] test_versionpredicate.pyc
[open]
[-] test_dist.py
[open]
[-] test_filelist.pyo
[open]
[-] test_install_data.pyo
[open]
[-] test_build_scripts.py
[open]
[-] test_dep_util.pyo
[open]
[-] test_filelist.pyc
[open]
[-] test_bdist.pyo
[open]
[-] test_check.pyc
[open]
[-] xxmodule.c
[open]
[-] test_bdist_wininst.py
[open]
[-] test_bdist_dumb.pyo
[open]
[-] test_sysconfig.py
[open]
[-] support.pyo
[open]
[-] test_sdist.pyc
[open]
[-] test_versionpredicate.pyo
[open]
[-] test_register.pyc
[open]
[-] test_build.pyo
[open]
[-] test_util.pyo
[open]
[-] test_version.pyc
[open]
[-] test_util.py
[open]
[-] setuptools_build_ext.py
[open]
[-] test_bdist.py
[open]
[-] test_build_py.pyo
[open]
[-] test_ccompiler.py
[open]
[-] test_sysconfig.pyc
[open]
[-] test_file_util.pyc
[open]
[-] test_file_util.py
[open]
[-] test_install_scripts.pyc
[open]
[-] test_cmd.pyo
[open]
[-] test_clean.pyc
[open]
[-] test_dep_util.py
[open]
[-] test_dir_util.pyo
[open]
[-] test_bdist_dumb.py
[open]
[-] test_config.pyc
[open]
[-] test_unixccompiler.pyo
[open]
[-] test_install.pyo
[open]
[-] test_config.pyo
[open]
[-] test_install_lib.pyo
[open]
[-] test_bdist_msi.pyo
[open]
[-] setuptools_extension.pyc
[open]
[-] test_check.pyo
[open]
[-] test_build_scripts.pyc
[open]
[-] test_config_cmd.py
[open]
[-] test_bdist_wininst.pyo
[open]
[-] test_unixccompiler.pyc
[open]
[-] test_dist.pyc
[open]
[-] Setup.sample
[open]
[-] test_bdist_rpm.pyc
[open]
[-] test_cmd.pyc
[open]
[-] test_archive_util.py
[open]
[-] test_upload.py
[open]
[-] test_bdist_dumb.pyc
[open]
[-] test_ccompiler.pyc
[open]
[-] test_core.py
[open]
[-] test_install_headers.pyo
[open]
[-] test_bdist_msi.pyc
[open]
[-] test_spawn.pyo
[open]
[-] __init__.py
[open]
[-] test_cmd.py
[open]
[-] test_unixccompiler.py
[open]
[-] test_build_ext.py
[open]
[-] test_text_file.pyo
[open]
[-] test_check.py
[open]
[-] test_config_cmd.pyo
[open]
[-] test_clean.py
[open]
[-] test_text_file.pyc
[open]
[-] test_msvc9compiler.pyc
[open]
[-] test_filelist.py
[open]
[-] test_register.py
[open]
[-] test_sysconfig.pyo
[open]
[-] test_install_data.py
[open]
[-] setuptools_extension.pyo
[open]
[-] test_upload.pyo
[open]
[-] test_build.py
[open]
[-] test_version.py
[open]
[-] test_build.pyc
[open]
[-] test_build_clib.py
[open]
[-] test_clean.pyo
[open]
[-] __init__.pyo
[open]
[-] test_config.py
[open]
[-] setuptools_build_ext.pyo
[open]
[-] support.pyc
[open]