summaryrefslogtreecommitdiff
path: root/tests/test_auth/test_auth_cookie.py
diff options
context:
space:
mode:
authorMarc Abramowitz <marc@marc-abramowitz.com>2015-04-30 16:42:17 -0700
committerMarc Abramowitz <marc@marc-abramowitz.com>2015-04-30 16:42:17 -0700
commit12a3f1f4cfa7f88478dc1b0e949fcc095b9fc804 (patch)
treeddb8079523d846f0b074437fc33fa5e28b508183 /tests/test_auth/test_auth_cookie.py
downloadpaste-git-12a3f1f4cfa7f88478dc1b0e949fcc095b9fc804.tar.gz
Replace cgi.parse_qsl w/ six.moves.urllib.parse.parse_sqleliminate_cgi_parse_qsl_2eliminate_cgi_parse_qsl
because `cgi.parse_qsl` is deprecated, according to https://docs.python.org/2/library/cgi.html#cgi.parse_qsl
Diffstat (limited to 'tests/test_auth/test_auth_cookie.py')
-rw-r--r--tests/test_auth/test_auth_cookie.py46
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/test_auth/test_auth_cookie.py b/tests/test_auth/test_auth_cookie.py
new file mode 100644
index 0000000..38e37b8
--- /dev/null
+++ b/tests/test_auth/test_auth_cookie.py
@@ -0,0 +1,46 @@
+# (c) 2005 Clark C. Evans
+# 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 six.moves import xrange
+import six
+
+from paste.auth import cookie
+from paste.wsgilib import raw_interactive, dump_environ
+from paste.response import header_value
+from paste.httpexceptions import *
+
+def build(application,setenv, *args, **kwargs):
+ def setter(environ, start_response):
+ save = environ['paste.auth.cookie'].append
+ for (k,v) in setenv.items():
+ save(k)
+ environ[k] = v
+ return application(environ, start_response)
+ return cookie.middleware(setter,*args,**kwargs)
+
+def test_noop():
+ app = build(dump_environ,{})
+ (status,headers,content,errors) = \
+ raw_interactive(app)
+ assert not header_value(headers,'Set-Cookie')
+
+def test_basic(key='key', val='bingles'):
+ app = build(dump_environ,{key:val})
+ (status,headers,content,errors) = \
+ raw_interactive(app)
+ value = header_value(headers,'Set-Cookie')
+ assert "Path=/;" in value
+ assert "expires=" not in value
+ cookie = value.split(";")[0]
+ (status,headers,content,errors) = \
+ raw_interactive(app,{'HTTP_COOKIE': cookie})
+ expected = ("%s: %s" % (key,val.replace("\n","\n ")))
+ if six.PY3:
+ expected = expected.encode('utf8')
+ assert expected in content
+
+def test_roundtrip():
+ roundtrip = str('').join(map(chr, xrange(256)))
+ test_basic(roundtrip,roundtrip)
+