]> granicus.if.org Git - python/commitdiff
Merged revisions 73925-73926 via svnmerge from
authorTarek Ziadé <ziade.tarek@gmail.com>
Fri, 10 Jul 2009 10:03:20 +0000 (10:03 +0000)
committerTarek Ziadé <ziade.tarek@gmail.com>
Fri, 10 Jul 2009 10:03:20 +0000 (10:03 +0000)
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
........

Lib/distutils/command/build.py
Lib/distutils/tests/test_build.py [new file with mode: 0644]

index 9c2667cfd2576cda705e9ce0bec234d63779d486..715621e1d75b16cba2ba2e0cd2bfde24404eb90c 100644 (file)
@@ -9,12 +9,10 @@ from distutils.core import Command
 from distutils.errors import DistutilsOptionError
 from distutils.util import get_platform
 
-
 def show_compilers():
     from distutils.ccompiler import show_compilers
     show_compilers()
 
-
 class build(Command):
 
     description = "build everything needed to install"
@@ -127,7 +125,6 @@ class build(Command):
         for cmd_name in self.get_sub_commands():
             self.run_command(cmd_name)
 
-
     # -- Predicates for the sub-command list ---------------------------
 
     def has_pure_modules(self):
@@ -142,7 +139,6 @@ class build(Command):
     def has_scripts(self):
         return self.distribution.has_scripts()
 
-
     sub_commands = [('build_py',      has_pure_modules),
                     ('build_clib',    has_c_libraries),
                     ('build_ext',     has_ext_modules),
diff --git a/Lib/distutils/tests/test_build.py b/Lib/distutils/tests/test_build.py
new file mode 100644 (file)
index 0000000..6bca27e
--- /dev/null
@@ -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")