diff options
Diffstat (limited to 'tests/responses/test_cookie.py')
| -rw-r--r-- | tests/responses/test_cookie.py | 108 |
1 files changed, 55 insertions, 53 deletions
diff --git a/tests/responses/test_cookie.py b/tests/responses/test_cookie.py index 96dd603aac..b37c6fb7b6 100644 --- a/tests/responses/test_cookie.py +++ b/tests/responses/test_cookie.py @@ -10,7 +10,6 @@ from django.utils.timezone import utc class SetCookieTests(SimpleTestCase): - def test_near_expiration(self): """Cookie will expire when a near expiration time is provided.""" response = HttpResponse() @@ -21,38 +20,40 @@ class SetCookieTests(SimpleTestCase): # larger. The sleep guarantees that there will be a time difference. expires = datetime.now(tz=utc).replace(tzinfo=None) + timedelta(seconds=10) time.sleep(0.001) - response.set_cookie('datetime', expires=expires) - datetime_cookie = response.cookies['datetime'] - self.assertEqual(datetime_cookie['max-age'], 10) + response.set_cookie("datetime", expires=expires) + datetime_cookie = response.cookies["datetime"] + self.assertEqual(datetime_cookie["max-age"], 10) def test_aware_expiration(self): """set_cookie() accepts an aware datetime as expiration time.""" response = HttpResponse() expires = datetime.now(tz=utc) + timedelta(seconds=10) time.sleep(0.001) - response.set_cookie('datetime', expires=expires) - datetime_cookie = response.cookies['datetime'] - self.assertEqual(datetime_cookie['max-age'], 10) + response.set_cookie("datetime", expires=expires) + datetime_cookie = response.cookies["datetime"] + self.assertEqual(datetime_cookie["max-age"], 10) def test_create_cookie_after_deleting_cookie(self): """Setting a cookie after deletion clears the expiry date.""" response = HttpResponse() - response.set_cookie('c', 'old-value') - self.assertEqual(response.cookies['c']['expires'], '') - response.delete_cookie('c') - self.assertEqual(response.cookies['c']['expires'], 'Thu, 01 Jan 1970 00:00:00 GMT') - response.set_cookie('c', 'new-value') - self.assertEqual(response.cookies['c']['expires'], '') + response.set_cookie("c", "old-value") + self.assertEqual(response.cookies["c"]["expires"], "") + response.delete_cookie("c") + self.assertEqual( + response.cookies["c"]["expires"], "Thu, 01 Jan 1970 00:00:00 GMT" + ) + response.set_cookie("c", "new-value") + self.assertEqual(response.cookies["c"]["expires"], "") def test_far_expiration(self): """Cookie will expire when a distant expiration time is provided.""" response = HttpResponse() - response.set_cookie('datetime', expires=datetime(2038, 1, 1, 4, 5, 6)) - datetime_cookie = response.cookies['datetime'] + response.set_cookie("datetime", expires=datetime(2038, 1, 1, 4, 5, 6)) + datetime_cookie = response.cookies["datetime"] self.assertIn( - datetime_cookie['expires'], + datetime_cookie["expires"], # assertIn accounts for slight time dependency (#23450) - ('Fri, 01 Jan 2038 04:05:06 GMT', 'Fri, 01 Jan 2038 04:05:07 GMT') + ("Fri, 01 Jan 2038 04:05:06 GMT", "Fri, 01 Jan 2038 04:05:07 GMT"), ) def test_max_age_expiration(self): @@ -60,57 +61,58 @@ class SetCookieTests(SimpleTestCase): response = HttpResponse() set_cookie_time = time.time() with freeze_time(set_cookie_time): - response.set_cookie('max_age', max_age=10) - max_age_cookie = response.cookies['max_age'] - self.assertEqual(max_age_cookie['max-age'], 10) - self.assertEqual(max_age_cookie['expires'], http_date(set_cookie_time + 10)) + response.set_cookie("max_age", max_age=10) + max_age_cookie = response.cookies["max_age"] + self.assertEqual(max_age_cookie["max-age"], 10) + self.assertEqual(max_age_cookie["expires"], http_date(set_cookie_time + 10)) def test_max_age_int(self): response = HttpResponse() - response.set_cookie('max_age', max_age=10.6) - self.assertEqual(response.cookies['max_age']['max-age'], 10) + response.set_cookie("max_age", max_age=10.6) + self.assertEqual(response.cookies["max_age"]["max-age"], 10) def test_httponly_cookie(self): response = HttpResponse() - response.set_cookie('example', httponly=True) - example_cookie = response.cookies['example'] - self.assertIn('; %s' % cookies.Morsel._reserved['httponly'], str(example_cookie)) - self.assertIs(example_cookie['httponly'], True) + response.set_cookie("example", httponly=True) + example_cookie = response.cookies["example"] + self.assertIn( + "; %s" % cookies.Morsel._reserved["httponly"], str(example_cookie) + ) + self.assertIs(example_cookie["httponly"], True) def test_unicode_cookie(self): """HttpResponse.set_cookie() works with Unicode data.""" response = HttpResponse() - cookie_value = '清風' - response.set_cookie('test', cookie_value) - self.assertEqual(response.cookies['test'].value, cookie_value) + cookie_value = "清風" + response.set_cookie("test", cookie_value) + self.assertEqual(response.cookies["test"].value, cookie_value) def test_samesite(self): response = HttpResponse() - response.set_cookie('example', samesite='None') - self.assertEqual(response.cookies['example']['samesite'], 'None') - response.set_cookie('example', samesite='Lax') - self.assertEqual(response.cookies['example']['samesite'], 'Lax') - response.set_cookie('example', samesite='strict') - self.assertEqual(response.cookies['example']['samesite'], 'strict') + response.set_cookie("example", samesite="None") + self.assertEqual(response.cookies["example"]["samesite"], "None") + response.set_cookie("example", samesite="Lax") + self.assertEqual(response.cookies["example"]["samesite"], "Lax") + response.set_cookie("example", samesite="strict") + self.assertEqual(response.cookies["example"]["samesite"], "strict") def test_invalid_samesite(self): msg = 'samesite must be "lax", "none", or "strict".' with self.assertRaisesMessage(ValueError, msg): - HttpResponse().set_cookie('example', samesite='invalid') + HttpResponse().set_cookie("example", samesite="invalid") class DeleteCookieTests(SimpleTestCase): - def test_default(self): response = HttpResponse() - response.delete_cookie('c') - cookie = response.cookies['c'] - self.assertEqual(cookie['expires'], 'Thu, 01 Jan 1970 00:00:00 GMT') - self.assertEqual(cookie['max-age'], 0) - self.assertEqual(cookie['path'], '/') - self.assertEqual(cookie['secure'], '') - self.assertEqual(cookie['domain'], '') - self.assertEqual(cookie['samesite'], '') + response.delete_cookie("c") + cookie = response.cookies["c"] + self.assertEqual(cookie["expires"], "Thu, 01 Jan 1970 00:00:00 GMT") + self.assertEqual(cookie["max-age"], 0) + self.assertEqual(cookie["path"], "/") + self.assertEqual(cookie["secure"], "") + self.assertEqual(cookie["domain"], "") + self.assertEqual(cookie["samesite"], "") def test_delete_cookie_secure_prefix(self): """ @@ -119,19 +121,19 @@ class DeleteCookieTests(SimpleTestCase): prefixes). """ response = HttpResponse() - for prefix in ('Secure', 'Host'): + for prefix in ("Secure", "Host"): with self.subTest(prefix=prefix): - cookie_name = '__%s-c' % prefix + cookie_name = "__%s-c" % prefix response.delete_cookie(cookie_name) - self.assertIs(response.cookies[cookie_name]['secure'], True) + self.assertIs(response.cookies[cookie_name]["secure"], True) def test_delete_cookie_secure_samesite_none(self): # delete_cookie() sets the secure flag if samesite='none'. response = HttpResponse() - response.delete_cookie('c', samesite='none') - self.assertIs(response.cookies['c']['secure'], True) + response.delete_cookie("c", samesite="none") + self.assertIs(response.cookies["c"]["secure"], True) def test_delete_cookie_samesite(self): response = HttpResponse() - response.delete_cookie('c', samesite='lax') - self.assertEqual(response.cookies['c']['samesite'], 'lax') + response.delete_cookie("c", samesite="lax") + self.assertEqual(response.cookies["c"]["samesite"], "lax") |
