Commit eaaec27b authored by Senthil Kumaran's avatar Senthil Kumaran

Fix for Issue4962, issue4675.

parent 7f6b4f86
...@@ -830,6 +830,21 @@ class Pathname_Tests(unittest.TestCase): ...@@ -830,6 +830,21 @@ class Pathname_Tests(unittest.TestCase):
"url2pathname() failed; %s != %s" % "url2pathname() failed; %s != %s" %
(expect, result)) (expect, result))
class Utility_Tests(unittest.TestCase):
"""Testcase to test the various utility functions in the urllib."""
def test_splitpasswd(self):
"""Some of password examples are not sensible, but it is added to
confirming to RFC2617 and addressing issue4675.
"""
self.assertEqual(('user', 'ab'),urllib.parse.splitpasswd('user:ab'))
self.assertEqual(('user', 'a\nb'),urllib.parse.splitpasswd('user:a\nb'))
self.assertEqual(('user', 'a\tb'),urllib.parse.splitpasswd('user:a\tb'))
self.assertEqual(('user', 'a\rb'),urllib.parse.splitpasswd('user:a\rb'))
self.assertEqual(('user', 'a\fb'),urllib.parse.splitpasswd('user:a\fb'))
self.assertEqual(('user', 'a\vb'),urllib.parse.splitpasswd('user:a\vb'))
self.assertEqual(('user', 'a:b'),urllib.parse.splitpasswd('user:a:b'))
# Just commented them out. # Just commented them out.
# Can't really tell why keep failing in windows and sparc. # Can't really tell why keep failing in windows and sparc.
# Everywhere else they work ok, but on those machines, someteimes # Everywhere else they work ok, but on those machines, someteimes
...@@ -920,6 +935,7 @@ def test_main(): ...@@ -920,6 +935,7 @@ def test_main():
UnquotingTests, UnquotingTests,
urlencode_Tests, urlencode_Tests,
Pathname_Tests, Pathname_Tests,
Utility_Tests,
#FTPWrapperTests, #FTPWrapperTests,
) )
......
...@@ -97,6 +97,9 @@ class UrlParseTestCase(unittest.TestCase): ...@@ -97,6 +97,9 @@ class UrlParseTestCase(unittest.TestCase):
'', '', ''), '', '', ''),
('mms', 'wms.sys.hinet.net', '/cts/Drama/09006251100.asf', ('mms', 'wms.sys.hinet.net', '/cts/Drama/09006251100.asf',
'', '')), '', '')),
('nfs://server/path/to/file.txt',
('nfs', 'server', '/path/to/file.txt', '', '', ''),
('nfs', 'server', '/path/to/file.txt', '', '')),
('svn+ssh://svn.zope.org/repos/main/ZConfig/trunk/', ('svn+ssh://svn.zope.org/repos/main/ZConfig/trunk/',
('svn+ssh', 'svn.zope.org', '/repos/main/ZConfig/trunk/', ('svn+ssh', 'svn.zope.org', '/repos/main/ZConfig/trunk/',
'', '', ''), '', '', ''),
......
...@@ -19,7 +19,7 @@ uses_relative = ['ftp', 'http', 'gopher', 'nntp', 'imap', ...@@ -19,7 +19,7 @@ uses_relative = ['ftp', 'http', 'gopher', 'nntp', 'imap',
uses_netloc = ['ftp', 'http', 'gopher', 'nntp', 'telnet', uses_netloc = ['ftp', 'http', 'gopher', 'nntp', 'telnet',
'imap', 'wais', 'file', 'mms', 'https', 'shttp', 'imap', 'wais', 'file', 'mms', 'https', 'shttp',
'snews', 'prospero', 'rtsp', 'rtspu', 'rsync', '', 'snews', 'prospero', 'rtsp', 'rtspu', 'rsync', '',
'svn', 'svn+ssh', 'sftp'] 'svn', 'svn+ssh', 'sftp','nfs']
non_hierarchical = ['gopher', 'hdl', 'mailto', 'news', non_hierarchical = ['gopher', 'hdl', 'mailto', 'news',
'telnet', 'wais', 'imap', 'snews', 'sip', 'sips'] 'telnet', 'wais', 'imap', 'snews', 'sip', 'sips']
uses_params = ['ftp', 'hdl', 'prospero', 'http', 'imap', uses_params = ['ftp', 'hdl', 'prospero', 'http', 'imap',
...@@ -645,7 +645,7 @@ def splitpasswd(user): ...@@ -645,7 +645,7 @@ def splitpasswd(user):
global _passwdprog global _passwdprog
if _passwdprog is None: if _passwdprog is None:
import re import re
_passwdprog = re.compile('^([^:]*):(.*)$') _passwdprog = re.compile('^([^:]*):(.*)$',re.S)
match = _passwdprog.match(user) match = _passwdprog.match(user)
if match: return match.group(1, 2) if match: return match.group(1, 2)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment