Ejemplo n.º 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)))
Ejemplo n.º 2
0
 def _get_session_key(self):
     """
     Most session backends don't need to override this method, but we do,
     because instead of generating a random string, we want to actually
     generate a secure url-safe Base64-encoded string of data as our
     session key.
     """
     session_cache = getattr(self, '_session_cache', {})
     return signing.dumps(session_cache, compress=True,
         salt='djangocg.contrib.sessions.backends.signed_cookies',
         serializer=PickleSerializer)
Ejemplo n.º 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))