Merged revisions 73925-73926 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk

........
  r73925 | tarek.ziade | 2009-07-10 11:57:15 +0200 (Fri, 10 Jul 2009) | 1 line

  Added test coverage for distutils.command.build
........
  r73926 | tarek.ziade | 2009-07-10 12:00:21 +0200 (Fri, 10 Jul 2009) | 1 line

  cleaned up distutils.command.build
........
This commit is contained in:
Tarek Ziadé 2009-07-10 10:03:20 +00:00
parent b7815e3110
commit 15ccb3d3f7
2 changed files with 54 additions and 4 deletions

View File

@ -9,12 +9,10 @@ from distutils.core import Command
from distutils.errors import DistutilsOptionError from distutils.errors import DistutilsOptionError
from distutils.util import get_platform from distutils.util import get_platform
def show_compilers(): def show_compilers():
from distutils.ccompiler import show_compilers from distutils.ccompiler import show_compilers
show_compilers() show_compilers()
class build(Command): class build(Command):
description = "build everything needed to install" description = "build everything needed to install"
@ -127,7 +125,6 @@ class build(Command):
for cmd_name in self.get_sub_commands(): for cmd_name in self.get_sub_commands():
self.run_command(cmd_name) self.run_command(cmd_name)
# -- Predicates for the sub-command list --------------------------- # -- Predicates for the sub-command list ---------------------------
def has_pure_modules(self): def has_pure_modules(self):
@ -142,7 +139,6 @@ class build(Command):
def has_scripts(self): def has_scripts(self):
return self.distribution.has_scripts() return self.distribution.has_scripts()
sub_commands = [('build_py', has_pure_modules), sub_commands = [('build_py', has_pure_modules),
('build_clib', has_c_libraries), ('build_clib', has_c_libraries),
('build_ext', has_ext_modules), ('build_ext', has_ext_modules),

View File

@ -0,0 +1,54 @@
"""Tests for distutils.command.build."""
import unittest
import os
import sys
from distutils.command.build import build
from distutils.tests import support
from distutils.util import get_platform
class BuildTestCase(support.TempdirManager,
support.LoggingSilencer,
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.assertEquals(cmd.plat_name, get_platform())
# build_purelib is build + lib
wanted = os.path.join(cmd.build_base, 'lib')
self.assertEquals(cmd.build_purelib, wanted)
# build_platlib is 'build/lib.platform-x.x[-pydebug]'
# examples:
# build/lib.macosx-10.3-i386-2.7
plat_spec = '.%s-%s' % (cmd.plat_name, sys.version[0:3])
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.assertEquals(cmd.build_platlib, wanted)
# by default, build_lib = build_purelib
self.assertEquals(cmd.build_lib, cmd.build_purelib)
# build_temp is build/temp.<plat>
wanted = os.path.join(cmd.build_base, 'temp' + plat_spec)
self.assertEquals(cmd.build_temp, wanted)
# build_scripts is build/scripts-x.x
wanted = os.path.join(cmd.build_base, 'scripts-' + sys.version[0:3])
self.assertEquals(cmd.build_scripts, wanted)
# executable is os.path.normpath(sys.executable)
self.assertEquals(cmd.executable, os.path.normpath(sys.executable))
def test_suite():
return unittest.makeSuite(BuildTestCase)
if __name__ == "__main__":
unittest.main(defaultTest="test_suite")