| """Tests for distutils.command.build.""" |
| import os |
| import sys |
| |
| from packaging.command.build import build |
| from sysconfig import get_platform |
| from packaging.tests import unittest, support |
| |
| |
| class BuildTestCase(support.TempdirManager, |
| support.LoggingCatcher, |
| unittest.TestCase): |
| |
| def test_finalize_options(self): |
| pkg_dir, dist = self.create_dist() |
| cmd = build(dist) |
| cmd.finalize_options() |
| |
| # if not specified, plat_name gets the current platform |
| self.assertEqual(cmd.plat_name, get_platform()) |
| |
| # build_purelib is build + lib |
| wanted = os.path.join(cmd.build_base, 'lib') |
| self.assertEqual(cmd.build_purelib, wanted) |
| |
| # build_platlib is 'build/lib.platform-x.x[-pydebug]' |
| # examples: |
| # build/lib.macosx-10.3-i386-2.7 |
| pyversion = '%s.%s' % sys.version_info[:2] |
| plat_spec = '.%s-%s' % (cmd.plat_name, pyversion) |
| if hasattr(sys, 'gettotalrefcount'): |
| self.assertTrue(cmd.build_platlib.endswith('-pydebug')) |
| plat_spec += '-pydebug' |
| wanted = os.path.join(cmd.build_base, 'lib' + plat_spec) |
| self.assertEqual(cmd.build_platlib, wanted) |
| |
| # by default, build_lib = build_purelib |
| self.assertEqual(cmd.build_lib, cmd.build_purelib) |
| |
| # build_temp is build/temp.<plat> |
| wanted = os.path.join(cmd.build_base, 'temp' + plat_spec) |
| self.assertEqual(cmd.build_temp, wanted) |
| |
| # build_scripts is build/scripts-x.x |
| wanted = os.path.join(cmd.build_base, 'scripts-' + pyversion) |
| self.assertEqual(cmd.build_scripts, wanted) |
| |
| # executable is os.path.normpath(sys.executable) |
| self.assertEqual(cmd.executable, os.path.normpath(sys.executable)) |
| |
| |
| def test_suite(): |
| return unittest.makeSuite(BuildTestCase) |
| |
| if __name__ == "__main__": |
| unittest.main(defaultTest="test_suite") |