17db96d56Sopenharmony_ci"""Tests for distutils.command.build.""" 27db96d56Sopenharmony_ciimport unittest 37db96d56Sopenharmony_ciimport os 47db96d56Sopenharmony_ciimport sys 57db96d56Sopenharmony_cifrom test.support import run_unittest 67db96d56Sopenharmony_ci 77db96d56Sopenharmony_cifrom distutils.command.build import build 87db96d56Sopenharmony_cifrom distutils.tests import support 97db96d56Sopenharmony_cifrom sysconfig import get_platform 107db96d56Sopenharmony_ci 117db96d56Sopenharmony_ciclass BuildTestCase(support.TempdirManager, 127db96d56Sopenharmony_ci support.LoggingSilencer, 137db96d56Sopenharmony_ci unittest.TestCase): 147db96d56Sopenharmony_ci 157db96d56Sopenharmony_ci @unittest.skipUnless(sys.executable, "test requires sys.executable") 167db96d56Sopenharmony_ci def test_finalize_options(self): 177db96d56Sopenharmony_ci pkg_dir, dist = self.create_dist() 187db96d56Sopenharmony_ci cmd = build(dist) 197db96d56Sopenharmony_ci cmd.finalize_options() 207db96d56Sopenharmony_ci 217db96d56Sopenharmony_ci # if not specified, plat_name gets the current platform 227db96d56Sopenharmony_ci self.assertEqual(cmd.plat_name, get_platform()) 237db96d56Sopenharmony_ci 247db96d56Sopenharmony_ci # build_purelib is build + lib 257db96d56Sopenharmony_ci wanted = os.path.join(cmd.build_base, 'lib') 267db96d56Sopenharmony_ci self.assertEqual(cmd.build_purelib, wanted) 277db96d56Sopenharmony_ci 287db96d56Sopenharmony_ci # build_platlib is 'build/lib.platform-x.x[-pydebug]' 297db96d56Sopenharmony_ci # examples: 307db96d56Sopenharmony_ci # build/lib.macosx-10.3-i386-2.7 317db96d56Sopenharmony_ci plat_spec = '.%s-%d.%d' % (cmd.plat_name, *sys.version_info[:2]) 327db96d56Sopenharmony_ci if hasattr(sys, 'gettotalrefcount'): 337db96d56Sopenharmony_ci self.assertTrue(cmd.build_platlib.endswith('-pydebug')) 347db96d56Sopenharmony_ci plat_spec += '-pydebug' 357db96d56Sopenharmony_ci wanted = os.path.join(cmd.build_base, 'lib' + plat_spec) 367db96d56Sopenharmony_ci self.assertEqual(cmd.build_platlib, wanted) 377db96d56Sopenharmony_ci 387db96d56Sopenharmony_ci # by default, build_lib = build_purelib 397db96d56Sopenharmony_ci self.assertEqual(cmd.build_lib, cmd.build_purelib) 407db96d56Sopenharmony_ci 417db96d56Sopenharmony_ci # build_temp is build/temp.<plat> 427db96d56Sopenharmony_ci wanted = os.path.join(cmd.build_base, 'temp' + plat_spec) 437db96d56Sopenharmony_ci self.assertEqual(cmd.build_temp, wanted) 447db96d56Sopenharmony_ci 457db96d56Sopenharmony_ci # build_scripts is build/scripts-x.x 467db96d56Sopenharmony_ci wanted = os.path.join(cmd.build_base, 477db96d56Sopenharmony_ci 'scripts-%d.%d' % sys.version_info[:2]) 487db96d56Sopenharmony_ci self.assertEqual(cmd.build_scripts, wanted) 497db96d56Sopenharmony_ci 507db96d56Sopenharmony_ci # executable is os.path.normpath(sys.executable) 517db96d56Sopenharmony_ci self.assertEqual(cmd.executable, os.path.normpath(sys.executable)) 527db96d56Sopenharmony_ci 537db96d56Sopenharmony_cidef test_suite(): 547db96d56Sopenharmony_ci return unittest.TestLoader().loadTestsFromTestCase(BuildTestCase) 557db96d56Sopenharmony_ci 567db96d56Sopenharmony_ciif __name__ == "__main__": 577db96d56Sopenharmony_ci run_unittest(test_suite()) 58