+++ /dev/null
-"""Tests for distutils.command.install_data."""\r
-import os\r
-import sys\r
-import unittest\r
-\r
-from distutils.command.install_lib import install_lib\r
-from distutils.extension import Extension\r
-from distutils.tests import support\r
-from distutils.errors import DistutilsOptionError\r
-from test.test_support import run_unittest\r
-\r
-class InstallLibTestCase(support.TempdirManager,\r
- support.LoggingSilencer,\r
- support.EnvironGuard,\r
- unittest.TestCase):\r
-\r
- def test_finalize_options(self):\r
- pkg_dir, dist = self.create_dist()\r
- cmd = install_lib(dist)\r
-\r
- cmd.finalize_options()\r
- self.assertEqual(cmd.compile, 1)\r
- self.assertEqual(cmd.optimize, 0)\r
-\r
- # optimize must be 0, 1, or 2\r
- cmd.optimize = 'foo'\r
- self.assertRaises(DistutilsOptionError, cmd.finalize_options)\r
- cmd.optimize = '4'\r
- self.assertRaises(DistutilsOptionError, cmd.finalize_options)\r
-\r
- cmd.optimize = '2'\r
- cmd.finalize_options()\r
- self.assertEqual(cmd.optimize, 2)\r
-\r
- def _setup_byte_compile(self):\r
- pkg_dir, dist = self.create_dist()\r
- cmd = install_lib(dist)\r
- cmd.compile = cmd.optimize = 1\r
-\r
- f = os.path.join(pkg_dir, 'foo.py')\r
- self.write_file(f, '# python file')\r
- cmd.byte_compile([f])\r
- return pkg_dir\r
-\r
- @unittest.skipIf(sys.dont_write_bytecode, 'byte-compile not enabled')\r
- def test_byte_compile(self):\r
- pkg_dir = self._setup_byte_compile()\r
- if sys.flags.optimize < 1:\r
- self.assertTrue(os.path.exists(os.path.join(pkg_dir, 'foo.pyc')))\r
- else:\r
- self.assertTrue(os.path.exists(os.path.join(pkg_dir, 'foo.pyo')))\r
-\r
- def test_get_outputs(self):\r
- pkg_dir, dist = self.create_dist()\r
- cmd = install_lib(dist)\r
-\r
- # setting up a dist environment\r
- cmd.compile = cmd.optimize = 1\r
- cmd.install_dir = pkg_dir\r
- f = os.path.join(pkg_dir, 'foo.py')\r
- self.write_file(f, '# python file')\r
- cmd.distribution.py_modules = [pkg_dir]\r
- cmd.distribution.ext_modules = [Extension('foo', ['xxx'])]\r
- cmd.distribution.packages = [pkg_dir]\r
- cmd.distribution.script_name = 'setup.py'\r
-\r
- # get_output should return 4 elements\r
- self.assertTrue(len(cmd.get_outputs()) >= 2)\r
-\r
- def test_get_inputs(self):\r
- pkg_dir, dist = self.create_dist()\r
- cmd = install_lib(dist)\r
-\r
- # setting up a dist environment\r
- cmd.compile = cmd.optimize = 1\r
- cmd.install_dir = pkg_dir\r
- f = os.path.join(pkg_dir, 'foo.py')\r
- self.write_file(f, '# python file')\r
- cmd.distribution.py_modules = [pkg_dir]\r
- cmd.distribution.ext_modules = [Extension('foo', ['xxx'])]\r
- cmd.distribution.packages = [pkg_dir]\r
- cmd.distribution.script_name = 'setup.py'\r
-\r
- # get_input should return 2 elements\r
- self.assertEqual(len(cmd.get_inputs()), 2)\r
-\r
- def test_dont_write_bytecode(self):\r
- # makes sure byte_compile is not used\r
- pkg_dir, dist = self.create_dist()\r
- cmd = install_lib(dist)\r
- cmd.compile = 1\r
- cmd.optimize = 1\r
-\r
- old_dont_write_bytecode = sys.dont_write_bytecode\r
- sys.dont_write_bytecode = True\r
- try:\r
- cmd.byte_compile([])\r
- finally:\r
- sys.dont_write_bytecode = old_dont_write_bytecode\r
-\r
- self.assertTrue('byte-compiling is disabled' in self.logs[0][1])\r
-\r
-def test_suite():\r
- return unittest.makeSuite(InstallLibTestCase)\r
-\r
-if __name__ == "__main__":\r
- run_unittest(test_suite())\r