]> granicus.if.org Git - python/commitdiff
Fix for Issue4962, issue4675.
authorSenthil Kumaran <orsenthil@gmail.com>
Mon, 30 Mar 2009 21:54:41 +0000 (21:54 +0000)
committerSenthil Kumaran <orsenthil@gmail.com>
Mon, 30 Mar 2009 21:54:41 +0000 (21:54 +0000)
Lib/test/test_urllib.py
Lib/test/test_urlparse.py
Lib/urllib/parse.py

index 79e901f7cda1a2a5300208750e55bcf13d49d7ec..c16f30dc7d9166b108deb31c67044f4cf978ea44 100644 (file)
@@ -830,6 +830,21 @@ class Pathname_Tests(unittest.TestCase):
                          "url2pathname() failed; %s != %s" %
                          (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.
 # Can't really tell why keep failing in windows and sparc.
 # Everywhere else they work ok, but on those machines, someteimes
@@ -920,6 +935,7 @@ def test_main():
         UnquotingTests,
         urlencode_Tests,
         Pathname_Tests,
+        Utility_Tests,
         #FTPWrapperTests,
     )
 
index 16bc1332f5da7d29d7ac7f363e3ae24438812ee4..05d468434f32f334528e48ad67e90d5ee71ca459 100644 (file)
@@ -97,6 +97,9 @@ class UrlParseTestCase(unittest.TestCase):
               '', '', ''),
              ('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/',
               '', '', ''),
index 5fd038e1698c4569b5f5f4f9b5e555e81c93716c..903368329bcaba4a0b61fd0cdec900b6add1ef22 100644 (file)
@@ -19,7 +19,7 @@ uses_relative = ['ftp', 'http', 'gopher', 'nntp', 'imap',
 uses_netloc = ['ftp', 'http', 'gopher', 'nntp', 'telnet',
                'imap', 'wais', 'file', 'mms', 'https', 'shttp',
                'snews', 'prospero', 'rtsp', 'rtspu', 'rsync', '',
-               'svn', 'svn+ssh', 'sftp']
+               'svn', 'svn+ssh', 'sftp','nfs']
 non_hierarchical = ['gopher', 'hdl', 'mailto', 'news',
                     'telnet', 'wais', 'imap', 'snews', 'sip', 'sips']
 uses_params = ['ftp', 'hdl', 'prospero', 'http', 'imap',
@@ -645,7 +645,7 @@ def splitpasswd(user):
     global _passwdprog
     if _passwdprog is None:
         import re
-        _passwdprog = re.compile('^([^:]*):(.*)$')
+        _passwdprog = re.compile('^([^:]*):(.*)$',re.S)
 
     match = _passwdprog.match(user)
     if match: return match.group(1, 2)