summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_fileutils.py
diff options
context:
space:
mode:
authorEric Snow <ericsnowcurrently@gmail.com>2021-10-22 23:20:03 (GMT)
committerGitHub <noreply@github.com>2021-10-22 23:20:03 (GMT)
commit17c61045c51512add61a9e75e9c7343cf4e4fb82 (patch)
tree59a98afdea508cacfb4dc4f10acf2f5b402ea0b2 /Lib/test/test_fileutils.py
parentf30ad65dbf3c6b1b5eec14dc954d65ef32327857 (diff)
downloadcpython-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.py30
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()