summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Merickel <michael@merickel.org>2014-02-21 21:51:53 -0600
committerMichael Merickel <michael@merickel.org>2014-02-21 21:51:53 -0600
commit69b613db258d71caa925f0165030b9974a1610ca (patch)
tree001ce73cae473b3fbd3dcf76a909268b8f4c715a
parent3c87ad81b0e846e7d61f86f8a5a6aff6ec3a2b9e (diff)
downloadpyramid-69b613db258d71caa925f0165030b9974a1610ca.tar.gz
pyramid-69b613db258d71caa925f0165030b9974a1610ca.tar.bz2
pyramid-69b613db258d71caa925f0165030b9974a1610ca.zip
test cases to reproduce #1246
-rw-r--r--pyramid/tests/test_session.py14
1 files changed, 13 insertions, 1 deletions
diff --git a/pyramid/tests/test_session.py b/pyramid/tests/test_session.py
index 1ad0729b3..6bce764ca 100644
--- a/pyramid/tests/test_session.py
+++ b/pyramid/tests/test_session.py
@@ -519,7 +519,7 @@ def serialize(data, secret):
from pyramid.compat import native_
from pyramid.compat import pickle
pickled = pickle.dumps(data, pickle.HIGHEST_PROTOCOL)
- sig = hmac.new(bytes_(secret), pickled, sha1).hexdigest()
+ sig = hmac.new(bytes_(secret, 'utf-8'), pickled, sha1).hexdigest()
return sig + native_(base64.b64encode(pickled))
class Test_signed_serialize(unittest.TestCase):
@@ -531,6 +531,12 @@ class Test_signed_serialize(unittest.TestCase):
expected = serialize('123', 'secret')
result = self._callFUT('123', 'secret')
self.assertEqual(result, expected)
+
+ def test_it_with_highorder_secret(self):
+ secret = b'La Pe\xc3\xb1a'.decode('utf-8')
+ expected = serialize('123', secret)
+ result = self._callFUT('123', secret)
+ self.assertEqual(result, expected)
class Test_signed_deserialize(unittest.TestCase):
def _callFUT(self, serialized, secret, hmac=None):
@@ -562,6 +568,12 @@ class Test_signed_deserialize(unittest.TestCase):
serialized = 'bad' + serialize('123', 'secret')
self.assertRaises(ValueError, self._callFUT, serialized, 'secret')
+ def test_it_with_highorder_secret(self):
+ secret = b'La Pe\xc3\xb1a'.decode('utf-8')
+ serialized = serialize('123', secret)
+ result = self._callFUT(serialized, secret)
+ self.assertEqual(result, '123')
+
class Test_check_csrf_token(unittest.TestCase):
def _callFUT(self, *args, **kwargs):
from ..session import check_csrf_token