Issue #6470: Drop UNC prefix in FixTk.py

Patch by Christop Gohlke and Amaury Forgeot d'Arc.
This commit is contained in:
Martin v. Löwis 2010-06-04 19:39:07 +00:00
parent 16b2a5e0a9
commit eba67c0eac
3 changed files with 29 additions and 0 deletions

View file

@ -42,6 +42,8 @@ else:
# Ignore leading \\?\ # Ignore leading \\?\
if s.startswith("\\\\?\\"): if s.startswith("\\\\?\\"):
s = s[4:] s = s[4:]
if s.startswith("UNC"):
s = "\\" + s[3:]
return s return s
prefix = os.path.join(sys.prefix,"tcl") prefix = os.path.join(sys.prefix,"tcl")

View file

@ -127,6 +127,31 @@ class TclTest(unittest.TestCase):
tcl = self.interp tcl = self.interp
self.assertRaises(TclError,tcl.eval,'package require DNE') self.assertRaises(TclError,tcl.eval,'package require DNE')
def testLoadWithUNC(self):
import sys
if sys.platform != 'win32':
return
# Build a UNC path from the regular path.
# Something like
# \\%COMPUTERNAME%\c$\python27\python.exe
fullname = os.path.abspath(sys.executable)
if fullname[1] != ':':
return
unc_name = r'\\%s\%s$\%s' % (os.environ['COMPUTERNAME'],
fullname[0],
fullname[3:])
with test_support.EnvironmentVarGuard() as env:
env.unset("TCL_LIBRARY")
f = os.popen('%s -c "import Tkinter; print Tkinter"' % (unc_name,))
self.assert_('Tkinter.py' in f.read())
# exit code must be zero
self.assertEqual(f.close(), None)
def test_main(): def test_main():
test_support.run_unittest(TclTest, TkinterTest) test_support.run_unittest(TclTest, TkinterTest)

View file

@ -46,6 +46,8 @@ C-API
Library Library
------- -------
- Issue #6470: Drop UNC prefix in FixTk.
- Issue #5610: feedparser no longer eats extra characters at the end of - Issue #5610: feedparser no longer eats extra characters at the end of
a body part if the body part ends with a \r\n. a body part if the body part ends with a \r\n.