Added tests for signing non-string values and updated docs.
This commit is contained in:
parent
579f33eb79
commit
8c0c0235b6
|
@ -53,6 +53,15 @@ You can retrieve the original value using the ``unsign`` method::
|
||||||
>>> original
|
>>> original
|
||||||
'My string'
|
'My string'
|
||||||
|
|
||||||
|
If you pass a non-string value to ``sign``, the value will be forced to string
|
||||||
|
before being signed, and the ``unsign`` result will give you that string
|
||||||
|
value::
|
||||||
|
|
||||||
|
>>> signed = signer.sign(2.5)
|
||||||
|
>>> original = signer.unsign(signed)
|
||||||
|
>>> original
|
||||||
|
'2.5'
|
||||||
|
|
||||||
If the signature or value have been altered in any way, a
|
If the signature or value have been altered in any way, a
|
||||||
``django.core.signing.BadSignature`` exception will be raised::
|
``django.core.signing.BadSignature`` exception will be raised::
|
||||||
|
|
||||||
|
|
|
@ -49,6 +49,21 @@ class TestSigner(SimpleTestCase):
|
||||||
self.assertNotEqual(example, signed)
|
self.assertNotEqual(example, signed)
|
||||||
self.assertEqual(example, signer.unsign(signed))
|
self.assertEqual(example, signer.unsign(signed))
|
||||||
|
|
||||||
|
def test_sign_unsign_non_string(self):
|
||||||
|
signer = signing.Signer('predictable-secret')
|
||||||
|
values = [
|
||||||
|
123,
|
||||||
|
1.23,
|
||||||
|
True,
|
||||||
|
datetime.date.today(),
|
||||||
|
]
|
||||||
|
for value in values:
|
||||||
|
with self.subTest(value):
|
||||||
|
signed = signer.sign(value)
|
||||||
|
self.assertIsInstance(signed, str)
|
||||||
|
self.assertNotEqual(signed, value)
|
||||||
|
self.assertEqual(signer.unsign(signed), str(value))
|
||||||
|
|
||||||
def test_unsign_detects_tampering(self):
|
def test_unsign_detects_tampering(self):
|
||||||
"unsign should raise an exception if the value has been tampered with"
|
"unsign should raise an exception if the value has been tampered with"
|
||||||
signer = signing.Signer('predictable-secret')
|
signer = signing.Signer('predictable-secret')
|
||||||
|
|
Loading…
Reference in New Issue