summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_wsgiref.py
diff options
context:
space:
mode:
authorBerker Peksag <berker.peksag@gmail.com>2015-03-02 04:53:33 (GMT)
committerBerker Peksag <berker.peksag@gmail.com>2015-03-02 04:53:33 (GMT)
commit659f631a5ebfc5145dedfc2322932876f81e7769 (patch)
treef426f6cdfb04947d48c162afc2f10957e0e5e164 /Lib/test/test_wsgiref.py
parentab4040e3c636361b4ba5fe3230d12be530aebe61 (diff)
downloadcpython-659f631a5ebfc5145dedfc2322932876f81e7769.zip
cpython-659f631a5ebfc5145dedfc2322932876f81e7769.tar.gz
cpython-659f631a5ebfc5145dedfc2322932876f81e7769.tar.bz2
Issue #23477: Improve test coverage of wsgiref.simple_server.
The test checks that the environ argument contains correct headers, querystring and path information. Patch by Alex Shkop.
Diffstat (limited to 'Lib/test/test_wsgiref.py')
-rw-r--r--Lib/test/test_wsgiref.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/Lib/test/test_wsgiref.py b/Lib/test/test_wsgiref.py
index e213d77..5704fc7 100644
--- a/Lib/test/test_wsgiref.py
+++ b/Lib/test/test_wsgiref.py
@@ -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],