diff options
author | Eric Snow <ericsnowcurrently@gmail.com> | 2021-10-22 23:20:03 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-22 23:20:03 (GMT) |
commit | 17c61045c51512add61a9e75e9c7343cf4e4fb82 (patch) | |
tree | 59a98afdea508cacfb4dc4f10acf2f5b402ea0b2 /Lib/test/test_fileutils.py | |
parent | f30ad65dbf3c6b1b5eec14dc954d65ef32327857 (diff) | |
download | cpython-17c61045c51512add61a9e75e9c7343cf4e4fb82.zip cpython-17c61045c51512add61a9e75e9c7343cf4e4fb82.tar.gz cpython-17c61045c51512add61a9e75e9c7343cf4e4fb82.tar.bz2 |
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
Diffstat (limited to 'Lib/test/test_fileutils.py')
-rw-r--r-- | Lib/test/test_fileutils.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/Lib/test/test_fileutils.py b/Lib/test/test_fileutils.py new file mode 100644 index 0000000..45b3f32 --- /dev/null +++ b/Lib/test/test_fileutils.py @@ -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() |