diff options
author | Kurt B. Kaiser <kbk@shore.net> | 2004-07-11 17:14:13 (GMT) |
---|---|---|
committer | Kurt B. Kaiser <kbk@shore.net> | 2004-07-11 17:14:13 (GMT) |
commit | 3f7cb5d9f5ddafc1a0c79775304fc74b829a11c1 (patch) | |
tree | 018792e0ef797856de01a1e29872a816117ca6cd | |
parent | e2465087790ecd3a873252a0b7c67772ce1ac911 (diff) | |
download | cpython-3f7cb5d9f5ddafc1a0c79775304fc74b829a11c1.zip cpython-3f7cb5d9f5ddafc1a0c79775304fc74b829a11c1.tar.gz cpython-3f7cb5d9f5ddafc1a0c79775304fc74b829a11c1.tar.bz2 |
Patch [ 972332 ] urllib2 FTPHandler bugs / John J. Lee
Modified Files:
urllib2.py test/test_urllib2.py
-rw-r--r-- | Lib/test/test_urllib2.py | 17 | ||||
-rw-r--r-- | Lib/urllib2.py | 6 |
2 files changed, 11 insertions, 12 deletions
diff --git a/Lib/test/test_urllib2.py b/Lib/test/test_urllib2.py index 27b5038..6e9901f 100644 --- a/Lib/test/test_urllib2.py +++ b/Lib/test/test_urllib2.py @@ -314,15 +314,12 @@ class HandlerTests(unittest.TestCase): ("ftp://localhost/foo/bar/baz.html", "localhost", ftplib.FTP_PORT, "I", ["foo", "bar"], "baz.html", "text/html"), -# XXXX Bug: FTPHandler tries to gethostbyname "localhost:80", with the -# port still there. -## ("ftp://localhost:80/foo/bar/", -## "localhost", 80, "D", -## ["foo", "bar"], "", None), -# XXXX bug: second use of splitattr() in FTPHandler should be splitvalue() -## ("ftp://localhost/baz.gif;type=a", -## "localhost", ftplib.FTP_PORT, "A", -## [], "baz.gif", "image/gif"), + ("ftp://localhost:80/foo/bar/", + "localhost", 80, "D", + ["foo", "bar"], "", None), + ("ftp://localhost/baz.gif;type=a", + "localhost", ftplib.FTP_PORT, "A", + [], "baz.gif", None), # XXX really this should guess image/gif ]: r = h.ftp_open(Request(url)) # ftp authentication not yet implemented by FTPHandler @@ -333,7 +330,7 @@ class HandlerTests(unittest.TestCase): self.assertEqual(h.ftpwrapper.filename, filename) self.assertEqual(h.ftpwrapper.filetype, type_) headers = r.info() - self.assertEqual(headers["Content-type"], mimetype) + self.assertEqual(headers.get("Content-type"), mimetype) self.assertEqual(int(headers["Content-length"]), len(data)) def test_file(self): diff --git a/Lib/urllib2.py b/Lib/urllib2.py index 84d4c34..8d38749 100644 --- a/Lib/urllib2.py +++ b/Lib/urllib2.py @@ -116,7 +116,7 @@ except ImportError: # not sure how many of these need to be gotten rid of from urllib import unwrap, unquote, splittype, splithost, \ addinfourl, splitport, splitgophertype, splitquery, \ - splitattr, ftpwrapper, noheaders, splituser, splitpasswd + splitattr, ftpwrapper, noheaders, splituser, splitpasswd, splitvalue # support for FileHandler, proxies via environment variables from urllib import localhost, url2pathname, getproxies @@ -1143,6 +1143,8 @@ class FTPHandler(BaseHandler): host, port = splitport(host) if port is None: port = ftplib.FTP_PORT + else: + port = int(port) # username/password handling user, host = splituser(host) @@ -1168,7 +1170,7 @@ class FTPHandler(BaseHandler): fw = self.connect_ftp(user, passwd, host, port, dirs) type = file and 'I' or 'D' for attr in attrs: - attr, value = splitattr(attr) + attr, value = splitvalue(attr) if attr.lower() == 'type' and \ value in ('a', 'A', 'i', 'I', 'd', 'D'): type = value.upper() |