diff options
Diffstat (limited to '')
-rw-r--r-- | test/test_python_keepalive.py | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/test/test_python_keepalive.py b/test/test_python_keepalive.py new file mode 100644 index 00000000..518befba --- /dev/null +++ b/test/test_python_keepalive.py @@ -0,0 +1,64 @@ +import unittest +import unit + +class TestUnitApplication(unit.TestUnitControl): + + def setUpClass(): + u = unit.TestUnit() + + u.check_modules('python') + u.check_version('0.4') + + @unittest.expectedFailure + def test_python_keepalive_body(self): + code, name = """ + +def application(environ, start_response): + + content_length = int(environ.get('CONTENT_LENGTH', 0)) + body = bytes(environ['wsgi.input'].read(content_length)) + + start_response('200', [ + ('Content-Type', environ.get('CONTENT_TYPE')), + ('Content-Length', str(len(body))) + ]) + return [body] + +""", 'py_app' + + self.python_application(name, code) + + self.conf({ + "listeners": { + "*:7080": { + "application": "app" + } + }, + "applications": { + "app": { + "type": "python", + "workers": 1, + "path": self.testdir + '/' + name, + "module": "wsgi" + } + } + }) + + (resp, sock) = self.post(headers={ + 'Connection': 'keep-alive', + 'Content-Type': 'text/html', + 'Host': 'localhost' + }, start=True, body='0123456789' * 500) + + self.assertEqual(resp['body'], '0123456789' * 500, 'keep-alive 1') + + resp = self.post(headers={ + 'Connection': 'close', + 'Content-Type': 'text/html', + 'Host': 'localhost' + }, sock=sock, body='0123456789') + + self.assertEqual(resp['body'], '0123456789', 'keep-alive 2') + +if __name__ == '__main__': + unittest.main() |