diff options
| -rw-r--r-- | pyramid/authentication.py | 2 | ||||
| -rw-r--r-- | pyramid/tests/test_authentication.py | 7 |
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() |
