8000 gh-13056: Simplifications and cleanups to http cors changes. · python/cpython@18d97a9 · GitHub
[go: up one dir, main page]

Skip to content

Commit 18d97a9

Browse files
committed
gh-13056: Simplifications and cleanups to http cors changes.
1 parent a3256fd commit 18d97a9

File tree

3 files changed

+16
-16
lines changed

3 files changed

+16
-16
lines changed

Lib/http/server.py

Lines changed: 10 additions & 12 deletions
< 8000 table aria-label="Diff for: Lib/http/server.py" class="tab-size width-full DiffLines-module__tableLayoutFixed--ZmaVx" data-diff-anchor="diff-10e6db6c775e351ba2b55c4ad5e177191afe25d4942d1d2162d6e10505788a81" data-tab-size="8" data-paste-markdown-skip="true" role="grid" style="--line-number-cell-width:52px;--line-number-cell-width-unified:104px">Original file line numberDiff line numberDiff line change
@@ -132,10 +132,9 @@ def finish_request(self, request, client_address):
132132
"""Finish one request by instantiating RequestHandlerClass."""
133133
args = (request, client_address, self)
134134
kwargs = {}
135-
response_headers = getattr(self, 'response_headers', None)
136-
if response_headers:
135+
if hasattr(self, 'response_headers'):
137136
kwargs['response_headers'] = self.response_headers
138-
self.RequestHandlerClass(*args, **kwargs)
137+
self.RequestHandlerClass(request, client_address, self, **kwargs)
139138

140139
class ThreadingHTTPServer(socketserver.ThreadingMixIn, HTTPServer):
141140
daemon_threads = True
@@ -144,7 +143,7 @@ class ThreadingHTTPServer(socketserver.ThreadingMixIn, HTTPServer):
144143
class HTTPSServer(HTTPServer):
145144
def __init__(self, server_address, RequestHandlerClass,
146145
bind_and_activate=True, *, certfile, keyfile=None,
147-
password=None, alpn_protocols=None, response_headers=None):
146+
password=None, alpn_protocols=None, **http_server_kwargs):
148147
try:
149148
import ssl
150149
except ImportError:
@@ -163,7 +162,7 @@ def __init__(self, server_address, RequestHandlerClass,
163162
super().__init__(server_address,
164163
RequestHandlerClass,
165164
bind_and_activate,
166-
response_headers=response_headers)
165+
**http_server_kwargs)
167166

168167
def server_activate(self):
169168
"""Wrap the socket in SSLSocket."""
@@ -709,7 +708,7 @@ def __init__(self, *args, directory=None, response_headers=None, **kwargs):
709708
if directory is None:
710709
directory = os.getcwd()
711710
self.directory = os.fspath(directory)
712-
self.response_headers = response_headers or {}
711+
self.response_headers = response_headers
713712
super().__init__(*args, **kwargs)
714713

715714
def do_GET(self):
@@ -991,7 +990,8 @@ def _get_best_family(*address):
991990
def test(HandlerClass=BaseHTTPRequestHandler,
992991
ServerClass=ThreadingHTTPServer,
993992
protocol="HTTP/1.0", port=8000, bind=None,
994-
tls_cert=None, tls_key=None, tls_password=None, response_headers=None):
993+
tls_cert=None, tls_key=None, tls_password=None,
994+
response_headers=None):
995995
"""Test the HTTP request handler class.
996996
997997
This runs an HTTP server on port 8000 (or the port argument).
@@ -1075,11 +1075,9 @@ def server_bind(self):
10751075
return super().server_bind()
10761076

10771077
def finish_request(self, request, client_address):
1078-
handler_args = (request, client_address, self)
1079-
handler_kwargs = dict(directory=args.directory)
1080-
if self.response_headers:
1081-
handler_kwargs['response_headers'] = self.response_headers
1082-
self.RequestHandlerClass(*handler_args, **handler_kwargs)
1078+
self.RequestHandlerClass(request, client_address, self,
1079+
directory=args.directory,
1080+
response_headers=self.response_headers)
10831081

10841082
class HTTPDualStackServer(DualStackServerMixin, ThreadingHTTPServer):
10851083
pass

Lib/socketserver.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -757,7 +757,7 @@ class BaseRequestHandler:
757757
758758
"""
759759

760-
def __init__(self, request, client_address, server):
760+
def __init__(self, request, client_address, server, **kwargs):
761761
self.request = request
762762
self.client_address = client_address
763763
self.server = server

Lib/test/test_httpservers.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ def run(self):
9494
self.server = create_https_server(
9595
certfile, keyfile, password,
9696
request_handler=self.request_handler,
97+
**self.server_kwargs
9798
)
9899
else:
99100
self.server = HTTPServer(('localhost', 0), self.request_handler,
@@ -829,9 +830,10 @@ def test_path_without_leading_slash(self):
829830

830831

831832
class CorsHTTPServerTestCase(SimpleHTTPServerTestCase):
832-
server_kwargs = dict(
833-
response_headers = {'Access-Control-Allow-Origin': '*'}
834-
)
833+
server_kwargs = {
834+
'response_headers': {'Access-Control-Allow-Origin': '*'}
835+
}
836+
835837
def test_cors(self):
836838
response = self.request(self.base_url + '/test')
837839
self.check_status_and_reason(response, HTTPStatus.OK)

0 commit comments

Comments
 (0)
0