diff options
author | Marc Abramowitz <marc@marc-abramowitz.com> | 2016-03-07 18:52:36 -0800 |
---|---|---|
committer | Marc Abramowitz <marc@marc-abramowitz.com> | 2016-03-07 18:52:36 -0800 |
commit | cc83e06efff71b81ca5a3ac6df65775971181295 (patch) | |
tree | d52fa3f1a93730f263c2c5ac8266de8e5fb12abf /tests/test_request.py | |
download | paste-git-tox_coverage.tar.gz |
tox.ini: Measure test coveragetox_coverage
Diffstat (limited to 'tests/test_request.py')
-rw-r--r-- | tests/test_request.py | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/tests/test_request.py b/tests/test_request.py new file mode 100644 index 0000000..072304d --- /dev/null +++ b/tests/test_request.py @@ -0,0 +1,66 @@ +# (c) 2005 Ben Bangert +# This module is part of the Python Paste Project and is released under +# the MIT License: http://www.opensource.org/licenses/mit-license.php +from paste.fixture import * +from paste.request import * +from paste.wsgiwrappers import WSGIRequest +import six + +def simpleapp(environ, start_response): + status = '200 OK' + response_headers = [('Content-type','text/plain')] + start_response(status, response_headers) + request = WSGIRequest(environ) + body = [ + 'Hello world!\n', 'The get is %s' % str(request.GET), + ' and Val is %s\n' % request.GET.get('name'), + 'The languages are: %s\n' % request.languages, + 'The accepttypes is: %s\n' % request.match_accept(['text/html', 'application/xml'])] + if six.PY3: + body = [line.encode('utf8') for line in body] + return body + +def test_gets(): + app = TestApp(simpleapp) + res = app.get('/') + assert 'Hello' in res + assert "get is MultiDict([])" in res + + res = app.get('/?name=george') + res.mustcontain("get is MultiDict([('name', 'george')])") + res.mustcontain("Val is george") + +def test_language_parsing(): + app = TestApp(simpleapp) + res = app.get('/') + assert "The languages are: ['en-us']" in res + + res = app.get('/', headers={'Accept-Language':'da, en-gb;q=0.8, en;q=0.7'}) + assert "languages are: ['da', 'en-gb', 'en', 'en-us']" in res + + res = app.get('/', headers={'Accept-Language':'en-gb;q=0.8, da, en;q=0.7'}) + assert "languages are: ['da', 'en-gb', 'en', 'en-us']" in res + +def test_mime_parsing(): + app = TestApp(simpleapp) + res = app.get('/', headers={'Accept':'text/html'}) + assert "accepttypes is: ['text/html']" in res + + res = app.get('/', headers={'Accept':'application/xml'}) + assert "accepttypes is: ['application/xml']" in res + + res = app.get('/', headers={'Accept':'application/xml,*/*'}) + assert "accepttypes is: ['text/html', 'application/xml']" in res + +def test_bad_cookie(): + env = {} + env['HTTP_COOKIE'] = '070-it-:><?0' + assert get_cookie_dict(env) == {} + env['HTTP_COOKIE'] = 'foo=bar' + assert get_cookie_dict(env) == {'foo': 'bar'} + env['HTTP_COOKIE'] = '...' + assert get_cookie_dict(env) == {} + env['HTTP_COOKIE'] = '=foo' + assert get_cookie_dict(env) == {} + env['HTTP_COOKIE'] = '?=' + assert get_cookie_dict(env) == {} |