mirror of
https://github.com/python/cpython.git
synced 2025-08-17 15:21:26 +00:00

The contents of this attribute are an implementation detail, as documented for #9442, so we should not parse it, to support non-CPython VMs with distutils2 in the future. Unfortunately, one use comes directly from PEP 345, so an edit will have to be agreed before fixing the code (see comment in p7g.markers). Other remaining uses are found in p7g.compiler and could be replaced by the platform module (which also parses sys.version, but then it wouldn’t be my fault :)
56 lines
1.9 KiB
Python
56 lines
1.9 KiB
Python
"""Tests for distutils.command.build."""
|
|
import os
|
|
import sys
|
|
|
|
from packaging.command.build import build
|
|
from sysconfig import get_platform
|
|
from packaging.tests import unittest, support
|
|
|
|
|
|
class BuildTestCase(support.TempdirManager,
|
|
support.LoggingCatcher,
|
|
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.assertEqual(cmd.plat_name, get_platform())
|
|
|
|
# build_purelib is build + lib
|
|
wanted = os.path.join(cmd.build_base, 'lib')
|
|
self.assertEqual(cmd.build_purelib, wanted)
|
|
|
|
# build_platlib is 'build/lib.platform-x.x[-pydebug]'
|
|
# examples:
|
|
# build/lib.macosx-10.3-i386-2.7
|
|
pyversion = '%s.%s' % sys.version_info[:2]
|
|
plat_spec = '.%s-%s' % (cmd.plat_name, pyversion)
|
|
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.assertEqual(cmd.build_platlib, wanted)
|
|
|
|
# by default, build_lib = build_purelib
|
|
self.assertEqual(cmd.build_lib, cmd.build_purelib)
|
|
|
|
# build_temp is build/temp.<plat>
|
|
wanted = os.path.join(cmd.build_base, 'temp' + plat_spec)
|
|
self.assertEqual(cmd.build_temp, wanted)
|
|
|
|
# build_scripts is build/scripts-x.x
|
|
wanted = os.path.join(cmd.build_base, 'scripts-' + pyversion)
|
|
self.assertEqual(cmd.build_scripts, wanted)
|
|
|
|
# executable is os.path.normpath(sys.executable)
|
|
self.assertEqual(cmd.executable, os.path.normpath(sys.executable))
|
|
|
|
|
|
def test_suite():
|
|
return unittest.makeSuite(BuildTestCase)
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main(defaultTest="test_suite")
|