mirror of
https://github.com/django/django.git
synced 2025-11-19 03:08:59 +00:00
Fixed #23792 -- Added test.utils.freeze_time() context manager.
This commit is contained in:
parent
54085b0f9b
commit
994d6137a2
3 changed files with 25 additions and 21 deletions
|
|
@ -1,10 +1,10 @@
|
|||
from __future__ import unicode_literals
|
||||
|
||||
import datetime
|
||||
import time
|
||||
|
||||
from django.core import signing
|
||||
from django.test import TestCase
|
||||
from django.test.utils import freeze_time
|
||||
from django.utils.encoding import force_str
|
||||
from django.utils import six
|
||||
|
||||
|
|
@ -117,23 +117,15 @@ class TestTimestampSigner(TestCase):
|
|||
|
||||
def test_timestamp_signer(self):
|
||||
value = 'hello'
|
||||
_time = time.time
|
||||
time.time = lambda: 123456789
|
||||
try:
|
||||
with freeze_time(123456789):
|
||||
signer = signing.TimestampSigner('predictable-key')
|
||||
ts = signer.sign(value)
|
||||
self.assertNotEqual(ts,
|
||||
signing.Signer('predictable-key').sign(value))
|
||||
|
||||
self.assertEqual(signer.unsign(ts), value)
|
||||
time.time = lambda: 123456800
|
||||
self.assertEqual(signer.unsign(ts, max_age=13), value)
|
||||
|
||||
with freeze_time(123456800):
|
||||
self.assertEqual(signer.unsign(ts, max_age=12), value)
|
||||
# max_age parameter can also accept a datetime.timedelta object
|
||||
self.assertEqual(signer.unsign(ts, max_age=datetime.timedelta(seconds=11)), value)
|
||||
self.assertRaises(
|
||||
signing.SignatureExpired, signer.unsign, ts, max_age=10)
|
||||
with self.assertRaises(signing.SignatureExpired):
|
||||
self.assertEqual(signer.unsign(ts, max_age=datetime.timedelta(seconds=10)), value)
|
||||
finally:
|
||||
time.time = _time
|
||||
self.assertRaises(signing.SignatureExpired, signer.unsign, ts, max_age=10)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue