mirror of
https://github.com/python/cpython.git
synced 2025-10-21 06:02:21 +00:00
gh-90329: Add _winapi.GetLongPathName and GetShortPathName and use in venv to reduce warnings (GH-117817)
This commit is contained in:
parent
64cd6fc9a6
commit
185999bb3a
6 changed files with 328 additions and 3 deletions
|
@ -1,6 +1,9 @@
|
|||
# Test the Windows-only _winapi module
|
||||
|
||||
import os
|
||||
import pathlib
|
||||
import random
|
||||
import re
|
||||
import threading
|
||||
import time
|
||||
import unittest
|
||||
|
@ -92,3 +95,35 @@ class WinAPIBatchedWaitForMultipleObjectsTests(unittest.TestCase):
|
|||
|
||||
def test_max_events_waitany(self):
|
||||
self._events_waitany_test(MAXIMUM_BATCHED_WAIT_OBJECTS)
|
||||
|
||||
|
||||
class WinAPITests(unittest.TestCase):
|
||||
def test_getlongpathname(self):
|
||||
testfn = pathlib.Path(os.getenv("ProgramFiles")).parents[-1] / "PROGRA~1"
|
||||
if not os.path.isdir(testfn):
|
||||
raise unittest.SkipTest("require x:\\PROGRA~1 to test")
|
||||
|
||||
# pathlib.Path will be rejected - only str is accepted
|
||||
with self.assertRaises(TypeError):
|
||||
_winapi.GetLongPathName(testfn)
|
||||
|
||||
actual = _winapi.GetLongPathName(os.fsdecode(testfn))
|
||||
|
||||
# Can't assume that PROGRA~1 expands to any particular variation, so
|
||||
# ensure it matches any one of them.
|
||||
candidates = set(testfn.parent.glob("Progra*"))
|
||||
self.assertIn(pathlib.Path(actual), candidates)
|
||||
|
||||
def test_getshortpathname(self):
|
||||
testfn = pathlib.Path(os.getenv("ProgramFiles"))
|
||||
if not os.path.isdir(testfn):
|
||||
raise unittest.SkipTest("require '%ProgramFiles%' to test")
|
||||
|
||||
# pathlib.Path will be rejected - only str is accepted
|
||||
with self.assertRaises(TypeError):
|
||||
_winapi.GetShortPathName(testfn)
|
||||
|
||||
actual = _winapi.GetShortPathName(os.fsdecode(testfn))
|
||||
|
||||
# Should contain "PROGRA~" but we can't predict the number
|
||||
self.assertIsNotNone(re.match(r".\:\\PROGRA~\d", actual.upper()), actual)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue