diff options
| author | Ćukasz Langa <lukasz@langa.pl> | 2021-10-06 17:28:16 +0200 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-10-06 17:28:16 +0200 | 
| commit | f528045f695f7483d955a1eae4c1df68b1b4cacd (patch) | |
| tree | 0aa89e755f8672aca1a635762dbaf0fef795a072 | |
| parent | 61892c04764e1f3a659bbd09e6373687a27d36e2 (diff) | |
| download | cpython-git-f528045f695f7483d955a1eae4c1df68b1b4cacd.tar.gz | |
bpo-40321: Add missing test, slightly expand documentation (GH-28760)
| -rw-r--r-- | Doc/library/urllib.request.rst | 8 | ||||
| -rw-r--r-- | Lib/test/test_urllib2.py | 6 | ||||
| -rw-r--r-- | Lib/urllib/request.py | 2 | ||||
| -rw-r--r-- | Misc/NEWS.d/next/Library/2021-07-22-21-25-56.bpo-40321.gBlFmw.rst | 4 | 
4 files changed, 12 insertions, 8 deletions
| diff --git a/Doc/library/urllib.request.rst b/Doc/library/urllib.request.rst index 099d74b2d5..88e93ba6b0 100644 --- a/Doc/library/urllib.request.rst +++ b/Doc/library/urllib.request.rst @@ -876,13 +876,17 @@ HTTPRedirectHandler Objects  .. method:: HTTPRedirectHandler.http_error_307(req, fp, code, msg, hdrs)     The same as :meth:`http_error_301`, but called for the 'temporary redirect' -   response. +   response. It does not allow changing the request method from ``POST`` +   to ``GET``.  .. method:: HTTPRedirectHandler.http_error_308(req, fp, code, msg, hdrs)     The same as :meth:`http_error_301`, but called for the 'permanent redirect' -   response. +   response. It does not allow changing the request method from ``POST`` +   to ``GET``. + +   .. versionadded:: 3.11  .. _http-cookie-processor: diff --git a/Lib/test/test_urllib2.py b/Lib/test/test_urllib2.py index 9db23e6ce0..a2b1340e0b 100644 --- a/Lib/test/test_urllib2.py +++ b/Lib/test/test_urllib2.py @@ -1163,7 +1163,7 @@ class HandlerTests(unittest.TestCase):          o = h.parent = MockOpener()          # ordinary redirect behaviour -        for code in 301, 302, 303, 307: +        for code in 301, 302, 303, 307, 308:              for data in None, "blah\nblah\n":                  method = getattr(h, "http_error_%s" % code)                  req = Request(from_url, data) @@ -1176,8 +1176,8 @@ class HandlerTests(unittest.TestCase):                      method(req, MockFile(), code, "Blah",                             MockHeaders({"location": to_url}))                  except urllib.error.HTTPError: -                    # 307 in response to POST requires user OK -                    self.assertEqual(code, 307) +                    # 307 and 308 in response to POST require user OK +                    self.assertIn(code, (307, 308))                      self.assertIsNotNone(data)                  self.assertEqual(o.req.get_full_url(), to_url)                  try: diff --git a/Lib/urllib/request.py b/Lib/urllib/request.py index 3ba6d926aa..fd6fc36aee 100644 --- a/Lib/urllib/request.py +++ b/Lib/urllib/request.py @@ -11,7 +11,7 @@ option.  The OpenerDirector is a composite object that invokes the  Handlers needed to open the requested URL.  For example, the  HTTPHandler performs HTTP GET and POST requests and deals with  non-error returns.  The HTTPRedirectHandler automatically deals with -HTTP 301, 302, 303, 307 and 308 redirect errors, and the +HTTP 301, 302, 303, 307, and 308 redirect errors, and the  HTTPDigestAuthHandler deals with digest authentication.  urlopen(url, data=None) -- Basic usage is the same as original diff --git a/Misc/NEWS.d/next/Library/2021-07-22-21-25-56.bpo-40321.gBlFmw.rst b/Misc/NEWS.d/next/Library/2021-07-22-21-25-56.bpo-40321.gBlFmw.rst index 1a7dba249c..fede2a0e5e 100644 --- a/Misc/NEWS.d/next/Library/2021-07-22-21-25-56.bpo-40321.gBlFmw.rst +++ b/Misc/NEWS.d/next/Library/2021-07-22-21-25-56.bpo-40321.gBlFmw.rst @@ -1,2 +1,2 @@ -Adds support for HTTP 308 redirects to :mod:`urllib`. Patch by Jochem -Schulenklopper. +Adds support for HTTP 308 redirects to :mod:`urllib`. See :rfc:`7538` for +details. Patch by Jochem Schulenklopper. | 
