mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
bpo-45506: Normalize _PyPathConfig.stdlib_dir when calculated. (#29040)
The recently added PyConfig.stdlib_dir was being set with ".." entries. When __file__ was added for from modules this caused a problem on out-of-tree builds. This PR fixes that by normalizing "stdlib_dir" when it is calculated in getpath.c. https://bugs.python.org/issue45506
This commit is contained in:
parent
f30ad65dbf
commit
17c61045c5
6 changed files with 236 additions and 24 deletions
30
Lib/test/test_fileutils.py
Normal file
30
Lib/test/test_fileutils.py
Normal file
|
@ -0,0 +1,30 @@
|
|||
# Run tests for functions in Python/fileutils.c.
|
||||
|
||||
import os
|
||||
import os.path
|
||||
import unittest
|
||||
from test.support import import_helper
|
||||
|
||||
# Skip this test if the _testcapi module isn't available.
|
||||
_testcapi = import_helper.import_module('_testinternalcapi')
|
||||
|
||||
|
||||
class PathTests(unittest.TestCase):
|
||||
|
||||
def test_capi_normalize_path(self):
|
||||
if os.name == 'nt':
|
||||
raise unittest.SkipTest('Windows has its own helper for this')
|
||||
else:
|
||||
from .test_posixpath import PosixPathTest as posixdata
|
||||
tests = posixdata.NORMPATH_CASES
|
||||
for filename, expected in tests:
|
||||
if not os.path.isabs(filename):
|
||||
continue
|
||||
with self.subTest(filename):
|
||||
result = _testcapi.normalize_path(filename)
|
||||
self.assertEqual(result, expected,
|
||||
msg=f'input: {filename!r} expected output: {expected!r}')
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
Loading…
Add table
Add a link
Reference in a new issue