summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNikita Sobolev <mail@sobolevn.me>2023-07-14 06:55:49 (GMT)
committerGitHub <noreply@github.com>2023-07-14 06:55:49 (GMT)
commit490295d651d04ec3b3eff2a2cda7501191bad78a (patch)
treee03fd7df2983bc6a97620c49ea3bbadf50e2aa7a
parent025995feadaeebeef5d808f2564f0fd65b704ea5 (diff)
downloadcpython-490295d651d04ec3b3eff2a2cda7501191bad78a.zip
cpython-490295d651d04ec3b3eff2a2cda7501191bad78a.tar.gz
cpython-490295d651d04ec3b3eff2a2cda7501191bad78a.tar.bz2
gh-105626: Change the default return value of `HTTPConnection.get_proxy_response_headers` (#105628)
-rw-r--r--Doc/library/http.client.rst2
-rw-r--r--Lib/http/client.py5
-rw-r--r--Lib/test/test_httplib.py13
-rw-r--r--Misc/NEWS.d/next/Library/2023-06-10-12-20-17.gh-issue-105626.XyZein.rst3
4 files changed, 19 insertions, 4 deletions
diff --git a/Doc/library/http.client.rst b/Doc/library/http.client.rst
index 4529193..b9ceab6 100644
--- a/Doc/library/http.client.rst
+++ b/Doc/library/http.client.rst
@@ -390,7 +390,7 @@ HTTPConnection Objects
Returns a dictionary with the headers of the response received from
the proxy server to the CONNECT request.
- If the CONNECT request was not sent, the method returns an empty dictionary.
+ If the CONNECT request was not sent, the method returns ``None``.
.. versionadded:: 3.12
diff --git a/Lib/http/client.py b/Lib/http/client.py
index 3d98e4e..b35b1d6 100644
--- a/Lib/http/client.py
+++ b/Lib/http/client.py
@@ -970,13 +970,12 @@ class HTTPConnection:
received from the proxy server to the CONNECT request
sent to set the tunnel.
- If the CONNECT request was not sent, the method returns
- an empty dictionary.
+ If the CONNECT request was not sent, the method returns None.
"""
return (
_parse_header_lines(self._raw_proxy_headers)
if self._raw_proxy_headers is not None
- else {}
+ else None
)
def connect(self):
diff --git a/Lib/test/test_httplib.py b/Lib/test/test_httplib.py
index 8955d45..fe8105e 100644
--- a/Lib/test/test_httplib.py
+++ b/Lib/test/test_httplib.py
@@ -2404,6 +2404,19 @@ class TunnelTests(TestCase):
headers = self.conn.get_proxy_response_headers()
self.assertIn(expected_header, headers.items())
+ def test_no_proxy_response_headers(self):
+ expected_header = ('X-Dummy', '1')
+ response_text = (
+ 'HTTP/1.0 200 OK\r\n'
+ '{0}\r\n\r\n'.format(':'.join(expected_header))
+ )
+
+ self.conn._create_connection = self._create_connection(response_text)
+
+ self.conn.request('PUT', '/', '')
+ headers = self.conn.get_proxy_response_headers()
+ self.assertIsNone(headers)
+
def test_tunnel_leak(self):
sock = None
diff --git a/Misc/NEWS.d/next/Library/2023-06-10-12-20-17.gh-issue-105626.XyZein.rst b/Misc/NEWS.d/next/Library/2023-06-10-12-20-17.gh-issue-105626.XyZein.rst
new file mode 100644
index 0000000..2a48361
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2023-06-10-12-20-17.gh-issue-105626.XyZein.rst
@@ -0,0 +1,3 @@
+Change the default return value of
+:meth:`http.client.HTTPConnection.get_proxy_response_headers` to be ``None``
+and not ``{}``.