diff options
author | Facundo Batista <facundobatista@gmail.com> | 2008-02-07 19:06:52 (GMT) |
---|---|---|
committer | Facundo Batista <facundobatista@gmail.com> | 2008-02-07 19:06:52 (GMT) |
commit | 86371d61b704958e68bed0f9937c6a1ff5fd766e (patch) | |
tree | 2a82d71b84bec8628dc47cd041275aee79344c55 /Lib/test | |
parent | b4ee4a16f4fc28d89ba9b139db6cbaace44fc47a (diff) | |
download | cpython-86371d61b704958e68bed0f9937c6a1ff5fd766e.zip cpython-86371d61b704958e68bed0f9937c6a1ff5fd766e.tar.gz cpython-86371d61b704958e68bed0f9937c6a1ff5fd766e.tar.bz2 |
Fixes Issue 1401. When redirected, a possible POST get converted
to GET, so it loses its payload. So, it also must lose the
headers related to the payload (if it has no content any more,
it shouldn't indicate content length and type).
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/test_urllib2.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/Lib/test/test_urllib2.py b/Lib/test/test_urllib2.py index 90e1771..a35cbfa 100644 --- a/Lib/test/test_urllib2.py +++ b/Lib/test/test_urllib2.py @@ -822,6 +822,8 @@ class HandlerTests(unittest.TestCase): method = getattr(h, "http_error_%s" % code) req = Request(from_url, data) req.add_header("Nonsense", "viking=withhold") + if data is not None: + req.add_header("Content-Length", str(len(data))) req.add_unredirected_header("Spam", "spam") try: method(req, MockFile(), code, "Blah", @@ -834,6 +836,13 @@ class HandlerTests(unittest.TestCase): self.assertEqual(o.req.get_method(), "GET") except AttributeError: self.assert_(not o.req.has_data()) + + # now it's a GET, there should not be headers regarding content + # (possibly dragged from before being a POST) + headers = [x.lower() for x in o.req.headers] + self.assertTrue("content-length" not in headers) + self.assertTrue("content-type" not in headers) + self.assertEqual(o.req.headers["Nonsense"], "viking=withhold") self.assert_("Spam" not in o.req.headers) |