14710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm"""Tests for distutils.command.build.""" 24710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmimport unittest 34710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmimport os 44710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmimport sys 54710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmfrom test.test_support import run_unittest 64710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm 74710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmfrom distutils.command.build import build 84710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmfrom distutils.tests import support 94710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmfrom sysconfig import get_platform 104710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm 114710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass BuildTestCase(support.TempdirManager, 124710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm support.LoggingSilencer, 134710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm unittest.TestCase): 144710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm 154710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm def test_finalize_options(self): 164710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm pkg_dir, dist = self.create_dist() 174710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm cmd = build(dist) 184710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm cmd.finalize_options() 194710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm 204710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm # if not specified, plat_name gets the current platform 214710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm self.assertEqual(cmd.plat_name, get_platform()) 224710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm 234710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm # build_purelib is build + lib 244710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm wanted = os.path.join(cmd.build_base, 'lib') 254710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm self.assertEqual(cmd.build_purelib, wanted) 264710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm 274710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm # build_platlib is 'build/lib.platform-x.x[-pydebug]' 284710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm # examples: 294710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm # build/lib.macosx-10.3-i386-2.7 304710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm plat_spec = '.%s-%s' % (cmd.plat_name, sys.version[0:3]) 314710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm if hasattr(sys, 'gettotalrefcount'): 324710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm self.assertTrue(cmd.build_platlib.endswith('-pydebug')) 334710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm plat_spec += '-pydebug' 344710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm wanted = os.path.join(cmd.build_base, 'lib' + plat_spec) 354710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm self.assertEqual(cmd.build_platlib, wanted) 364710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm 374710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm # by default, build_lib = build_purelib 384710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm self.assertEqual(cmd.build_lib, cmd.build_purelib) 394710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm 404710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm # build_temp is build/temp.<plat> 414710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm wanted = os.path.join(cmd.build_base, 'temp' + plat_spec) 424710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm self.assertEqual(cmd.build_temp, wanted) 434710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm 444710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm # build_scripts is build/scripts-x.x 454710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm wanted = os.path.join(cmd.build_base, 'scripts-' + sys.version[0:3]) 464710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm self.assertEqual(cmd.build_scripts, wanted) 474710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm 484710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm # executable is os.path.normpath(sys.executable) 494710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm self.assertEqual(cmd.executable, os.path.normpath(sys.executable)) 504710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm 514710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmdef test_suite(): 524710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm return unittest.makeSuite(BuildTestCase) 534710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm 544710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmif __name__ == "__main__": 554710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm run_unittest(test_suite()) 56