]> granicus.if.org Git - python/commitdiff
Issue #23477: Improve test coverage of wsgiref.simple_server.
authorBerker Peksag <berker.peksag@gmail.com>
Mon, 2 Mar 2015 04:53:33 +0000 (06:53 +0200)
committerBerker Peksag <berker.peksag@gmail.com>
Mon, 2 Mar 2015 04:53:33 +0000 (06:53 +0200)
The test checks that the environ argument contains correct headers,
querystring and path information.

Patch by Alex Shkop.

Lib/test/test_wsgiref.py

index e213d778f1759e5b007398756e2f300ed76f8246..5704fc782607a34062221572b4f1cefd5b2ffb89 100644 (file)
@@ -48,6 +48,18 @@ def hello_app(environ,start_response):
     ])
     return [b"Hello, world!"]
 
+
+def header_app(environ, start_response):
+    start_response("200 OK", [
+        ('Content-Type', 'text/plain'),
+        ('Date', 'Mon, 05 Jun 2006 18:49:54 GMT')
+    ])
+    return [';'.join([
+        environ['HTTP_X_TEST_HEADER'], environ['QUERY_STRING'],
+        environ['PATH_INFO']
+    ]).encode('iso-8859-1')]
+
+
 def run_amock(app=hello_app, data=b"GET / HTTP/1.0\n\n"):
     server = make_server("", 80, app, MockServer, MockHandler)
     inp = BufferedReader(BytesIO(data))
@@ -118,6 +130,19 @@ class IntegrationTests(TestCase):
         out, err = run_amock()
         self.check_hello(out)
 
+    def test_environ(self):
+        request = (
+            b"GET /p%61th/?query=test HTTP/1.0\n"
+            b"X-Test-Header: Python test \n"
+            b"X-Test-Header: Python test 2\n"
+            b"Content-Length: 0\n\n"
+        )
+        out, err = run_amock(header_app, request)
+        self.assertEqual(
+            out.splitlines()[-1],
+            b"Python test,Python test 2;query=test;/path/"
+        )
+
     def test_request_length(self):
         out, err = run_amock(data=b"GET " + (b"x" * 65537) + b" HTTP/1.0\n\n")
         self.assertEqual(out.splitlines()[0],