Fixed #16222: Test failures due to more precise cookie timings. Refs [16356].

git-svn-id: http://code.djangoproject.com/svn/django/trunk@16376 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Andrew Godwin 2011-06-11 19:27:32 +00:00
parent 55005a5181
commit e096d56406
1 changed files with 10 additions and 1 deletions

View File

@ -25,6 +25,7 @@ class TestCookieStorage(TestStorage, TestCase):
self.assertRaises(SuspiciousOperation, storage.load_data)
def test_reset_cookie(self):
from django.core.signing import SignatureExpired
request = get_request()
storage = self.get_storage()('wizard1', request, None)
@ -35,7 +36,15 @@ class TestCookieStorage(TestStorage, TestCase):
cookie_signer = signing.get_cookie_signer(storage.prefix)
signed_cookie_data = cookie_signer.sign(storage.encoder.encode(storage.data))
self.assertEqual(response.cookies[storage.prefix].value, signed_cookie_data)
# signing with different timestamps generates different signatures
self.assertNotEqual(response.cookies[storage.prefix].value, signed_cookie_data)
self.assertEqual(cookie_signer.unsign(response.cookies[storage.prefix].value),
cookie_signer.unsign(signed_cookie_data))
self.assertRaises(SignatureExpired,
lambda: cookie_signer.unsign(value=response.cookies[storage.prefix].value, max_age=0))
self.assertEqual(cookie_signer.unsign(value=response.cookies[storage.prefix].value, max_age=10),
cookie_signer.unsign(signed_cookie_data))
storage.init_data()
storage.update_response(response)