summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pyramid/authentication.py2
-rw-r--r--pyramid/tests/test_authentication.py7
2 files changed, 8 insertions, 1 deletions
diff --git a/pyramid/authentication.py b/pyramid/authentication.py
index e38c984b3..ed422b044 100644
--- a/pyramid/authentication.py
+++ b/pyramid/authentication.py
@@ -729,7 +729,7 @@ class AuthTktCookieHelper(object):
for token in tokens:
if isinstance(token, text_type):
try:
- token.encode('ascii')
+ token = token.encode('ascii')
except UnicodeEncodeError:
raise ValueError("Invalid token %r" % (token,))
if not (isinstance(token, str) and VALID_TOKEN.match(token)):
diff --git a/pyramid/tests/test_authentication.py b/pyramid/tests/test_authentication.py
index b612c5789..6b8393fc2 100644
--- a/pyramid/tests/test_authentication.py
+++ b/pyramid/tests/test_authentication.py
@@ -616,6 +616,7 @@ class TestAuthTktCookieHelper(unittest.TestCase):
now = time.time()
helper.auth_tkt.timestamp = now
helper.now = now + 1
+ helper.auth_tkt.tokens = (u'a', )
request = self._makeRequest('bogus')
result = helper.identify(request)
self.assertTrue(result)
@@ -907,6 +908,12 @@ class TestAuthTktCookieHelper(unittest.TestCase):
self.assertEqual(result[2][0], 'Set-Cookie')
self.assertTrue("'tokens': ('foo', 'bar')" in result[2][1])
+ def test_remember_unicode_but_ascii_token(self):
+ helper = self._makeOne('secret')
+ request = self._makeRequest()
+ la = text_(b'foo', 'utf-8')
+ helper.remember(request, 'other', tokens=(la,))
+
def test_remember_nonascii_token(self):
helper = self._makeOne('secret')
request = self._makeRequest()