Kaydet (Commit) b4ec7ee4 authored tarafından Senthil Kumaran's avatar Senthil Kumaran

Merged revisions 83818 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r83818 | senthil.kumaran | 2010-08-08 16:57:53 +0530 (Sun, 08 Aug 2010) | 4 lines

  Fix Issue8280 - urllib2's Request method will remove fragements in the url.
  This is how it should work,wget and curl work like this way too. Old behavior was wrong.
........
üst 431774f3
...@@ -1237,6 +1237,16 @@ class RequestTests(unittest.TestCase): ...@@ -1237,6 +1237,16 @@ class RequestTests(unittest.TestCase):
self.assertEqual("www.python.org", self.get.get_origin_req_host()) self.assertEqual("www.python.org", self.get.get_origin_req_host())
self.assertEqual("www.perl.org", self.get.get_host()) self.assertEqual("www.perl.org", self.get.get_host())
def test_wrapped_url(self):
req = Request("<URL:http://www.python.org>")
self.assertEqual("www.python.org", req.get_host())
def test_urlwith_fragment(self):
req = Request("http://www.python.org/?qs=query#fragment=true")
self.assertEqual("/?qs=query", req.get_selector())
req = Request("http://www.python.org/#fun=true")
self.assertEqual("/", req.get_selector())
def test_main(verbose=None): def test_main(verbose=None):
from test import test_urllib2 from test import test_urllib2
......
...@@ -154,6 +154,13 @@ class OtherNetworkTests(unittest.TestCase): ...@@ -154,6 +154,13 @@ class OtherNetworkTests(unittest.TestCase):
## self._test_urls(urls, self._extra_handlers()+[bauth, dauth]) ## self._test_urls(urls, self._extra_handlers()+[bauth, dauth])
def test_urlwithfrag(self):
urlwith_frag = "http://docs.python.org/glossary.html#glossary"
req = urllib2.Request(urlwith_frag)
res = urllib2.urlopen(req)
self.assertEqual(res.geturl(),
"http://docs.python.org/glossary.html")
def _test_urls(self, urls, handlers, retry=True): def _test_urls(self, urls, handlers, retry=True):
import time import time
import logging import logging
......
...@@ -109,7 +109,7 @@ except ImportError: ...@@ -109,7 +109,7 @@ except ImportError:
from StringIO import StringIO from StringIO import StringIO
from urllib import (unwrap, unquote, splittype, splithost, quote, from urllib import (unwrap, unquote, splittype, splithost, quote,
addinfourl, splitport, addinfourl, splitport, splittag,
splitattr, ftpwrapper, splituser, splitpasswd, splitvalue) splitattr, ftpwrapper, splituser, splitpasswd, splitvalue)
# support for FileHandler, proxies via environment variables # support for FileHandler, proxies via environment variables
...@@ -190,6 +190,7 @@ class Request: ...@@ -190,6 +190,7 @@ class Request:
origin_req_host=None, unverifiable=False): origin_req_host=None, unverifiable=False):
# unwrap('<URL:type://host/path>') --> 'type://host/path' # unwrap('<URL:type://host/path>') --> 'type://host/path'
self.__original = unwrap(url) self.__original = unwrap(url)
self.__original, fragment = splittag(self.__original)
self.type = None self.type = None
# self.__r_type is what's left after doing the splittype # self.__r_type is what's left after doing the splittype
self.host = None self.host = None
......
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