diff options
author | Berker Peksag <berker.peksag@gmail.com> | 2015-03-02 04:54:27 (GMT) |
---|---|---|
committer | Berker Peksag <berker.peksag@gmail.com> | 2015-03-02 04:54:27 (GMT) |
commit | ccac023d654f8a84c5657a891067dd38b3cabc33 (patch) | |
tree | 3043c357012a2dc77f6fb1937ff80dc47fbd35ad /Lib/test/test_wsgiref.py | |
parent | 6897e5688d938d1950227bc23d1467ac86832e8a (diff) | |
parent | 659f631a5ebfc5145dedfc2322932876f81e7769 (diff) | |
download | cpython-ccac023d654f8a84c5657a891067dd38b3cabc33.zip cpython-ccac023d654f8a84c5657a891067dd38b3cabc33.tar.gz cpython-ccac023d654f8a84c5657a891067dd38b3cabc33.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.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/Lib/test/test_wsgiref.py b/Lib/test/test_wsgiref.py index 479fcbc..29f64f3 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], |