]> git.ipfire.org Git - thirdparty/httpx.git/commitdiff
Ensure all WSGITransport environs have a SERVER_PROTOCOL (#2708)
authorPeter Lazorchak <lazorchakp@gmail.com>
Fri, 19 May 2023 10:38:18 +0000 (03:38 -0700)
committerGitHub <noreply@github.com>
Fri, 19 May 2023 10:38:18 +0000 (11:38 +0100)
httpx/_transports/wsgi.py
tests/test_wsgi.py

index 33035ce586312d8722893e288a1bcadb20548a3f..a23d42c414e5481f2f6fb76fc53701f144c1ae91 100644 (file)
@@ -102,6 +102,7 @@ class WSGITransport(BaseTransport):
             "QUERY_STRING": request.url.query.decode("ascii"),
             "SERVER_NAME": request.url.host,
             "SERVER_PORT": str(port),
+            "SERVER_PROTOCOL": "HTTP/1.1",
             "REMOTE_ADDR": self.remote_addr,
         }
         for header_key, header_value in request.headers.raw:
index ff3f24ed02c52ca2499d2e6cb75cea63b4d21769..a952da6af914f5b6df768cb91390af2d7f83c073 100644 (file)
@@ -173,3 +173,20 @@ def test_wsgi_server_port(url: str, expected_server_port: str) -> None:
     assert response.status_code == 200
     assert response.text == "Hello, World!"
     assert server_port == expected_server_port
+
+
+def test_wsgi_server_protocol():
+    server_protocol = None
+
+    def app(environ, start_response):
+        nonlocal server_protocol
+        server_protocol = environ["SERVER_PROTOCOL"]
+        start_response("200 OK", [("Content-Type", "text/plain")])
+        return [b"success"]
+
+    with httpx.Client(app=app, base_url="http://testserver") as client:
+        response = client.get("/")
+
+    assert response.status_code == 200
+    assert response.text == "success"
+    assert server_protocol == "HTTP/1.1"