codekingpro/portable-devtools
114k
1"""Tests for distutils.command.build."""2 3import os4import sys5from distutils.command.build import build6from distutils.tests import support7from sysconfig import get_config_var, get_platform8 9 10class TestBuild(support.TempdirManager):11 def test_finalize_options(self):12 pkg_dir, dist = self.create_dist()13 cmd = build(dist)14 cmd.finalize_options()15 16 # if not specified, plat_name gets the current platform17 assert cmd.plat_name == get_platform()18 19 # build_purelib is build + lib20 wanted = os.path.join(cmd.build_base, 'lib')21 assert cmd.build_purelib == wanted22 23 # build_platlib is 'build/lib.platform-cache_tag[-pydebug]'24 # examples:25 # build/lib.macosx-10.3-i386-cpython3926 plat_spec = f'.{cmd.plat_name}-{sys.implementation.cache_tag}'27 if get_config_var('Py_GIL_DISABLED'):28 plat_spec += 't'29 if hasattr(sys, 'gettotalrefcount'):30 assert cmd.build_platlib.endswith('-pydebug')31 plat_spec += '-pydebug'32 wanted = os.path.join(cmd.build_base, 'lib' + plat_spec)33 assert cmd.build_platlib == wanted34 35 # by default, build_lib = build_purelib36 assert cmd.build_lib == cmd.build_purelib37 38 # build_temp is build/temp.<plat>39 wanted = os.path.join(cmd.build_base, 'temp' + plat_spec)40 assert cmd.build_temp == wanted41 42 # build_scripts is build/scripts-x.x43 wanted = os.path.join(44 cmd.build_base, f'scripts-{sys.version_info.major}.{sys.version_info.minor}'45 )46 assert cmd.build_scripts == wanted47 48 # executable is os.path.normpath(sys.executable)49 assert cmd.executable == os.path.normpath(sys.executable)50 