Example #1
0
 def test_dumps_loads(self):
     "dumps and loads be reversible for any JSON serializable object"
     objects = [
         ['a', 'list'],
         'a unicode string \u2019',
         {'a': 'dictionary'},
     ]
     if not six.PY3:
         objects.append(b'a byte string')
     for o in objects:
         self.assertNotEqual(o, signing.dumps(o))
         self.assertEqual(o, signing.loads(signing.dumps(o)))
         self.assertNotEqual(o, signing.dumps(o, compress=True))
         self.assertEqual(o, signing.loads(signing.dumps(o, compress=True)))
 def load(self):
     """
     We load the data from the key itself instead of fetching from
     some external data store. Opposite of _get_session_key(),
     raises BadSignature if signature fails.
     """
     try:
         return signing.loads(self.session_key,
             serializer=PickleSerializer,
             max_age=settings.SESSION_COOKIE_AGE,
             salt='djangocg.contrib.sessions.backends.signed_cookies')
     except (signing.BadSignature, ValueError):
         self.create()
     return {}
Example #3
0
 def test_decode_detects_tampering(self):
     "loads should raise exception for tampered objects"
     transforms = (
         lambda s: s.upper(),
         lambda s: s + 'a',
         lambda s: 'a' + s[1:],
         lambda s: s.replace(':', ''),
     )
     value = {
         'foo': 'bar',
         'baz': 1,
     }
     encoded = signing.dumps(value)
     self.assertEqual(value, signing.loads(encoded))
     for transform in transforms:
         self.assertRaises(
             signing.BadSignature, signing.loads, transform(encoded))