Refs #28965 -- Deprecated unused django.utils.http.cookie_date().

This commit is contained in:
Tim Graham 2017-12-30 14:19:43 -05:00
parent 0afffae4ec
commit ab7f4c3306
5 changed files with 20 additions and 1 deletions

View File

@ -3,6 +3,7 @@ import calendar
import datetime
import re
import unicodedata
import warnings
from binascii import Error as BinasciiError
from email.utils import formatdate
from urllib.parse import (
@ -13,6 +14,7 @@ from urllib.parse import (
from django.core.exceptions import TooManyFieldsSent
from django.utils.datastructures import MultiValueDict
from django.utils.deprecation import RemovedInDjango30Warning
from django.utils.encoding import force_bytes
from django.utils.functional import keep_lazy_text
@ -118,6 +120,11 @@ def cookie_date(epoch_seconds=None):
Output a string in the format 'Wdy, DD-Mon-YYYY HH:MM:SS GMT'.
"""
warnings.warn(
'cookie_date() is deprecated in favor of http_date(), which follows '
'the format of the latest RFC.',
RemovedInDjango30Warning, stacklevel=2,
)
rfcdate = formatdate(epoch_seconds)
return '%s-%s-%s GMT' % (rfcdate[:7], rfcdate[8:11], rfcdate[12:25])

View File

@ -31,6 +31,8 @@ details on these changes.
* ``django.contrib.gis.db.models.functions.ForceRHR`` will be removed.
* ``django.utils.http.cookie_date()`` will be removed.
See the :ref:`Django 2.1 release notes <deprecated-features-2.1>` for more
details on these changes.

View File

@ -682,6 +682,10 @@ escaping HTML.
.. function:: cookie_date(epoch_seconds=None)
.. deprecated:: 2.1
Use :func:`http_date` instead, which follows the latest RFC.
Formats the time to ensure compatibility with Netscape's cookie standard.
Accepts a floating point number expressed in seconds since the epoch in

View File

@ -249,6 +249,10 @@ Miscellaneous
* The ``ForceRHR`` GIS function is deprecated in favor of the new
:class:`~django.contrib.gis.db.models.functions.ForcePolygonCW` function.
* ``django.utils.http.cookie_date()`` is deprecated in favor of
:func:`~django.utils.http.http_date`, which follows the format of the latest
RFC.
.. _removed-features-2.1:
Features removed in 2.1

View File

@ -1,8 +1,9 @@
import unittest
from datetime import datetime
from django.test import SimpleTestCase
from django.test import SimpleTestCase, ignore_warnings
from django.utils.datastructures import MultiValueDict
from django.utils.deprecation import RemovedInDjango30Warning
from django.utils.http import (
base36_to_int, cookie_date, http_date, int_to_base36, is_safe_url,
is_same_domain, parse_etags, parse_http_date, quote_etag, urlencode,
@ -254,6 +255,7 @@ class HttpDateProcessingTests(unittest.TestCase):
t = 1167616461.0
self.assertEqual(http_date(t), 'Mon, 01 Jan 2007 01:54:21 GMT')
@ignore_warnings(category=RemovedInDjango30Warning)
def test_cookie_date(self):
t = 1167616461.0
self.assertEqual(cookie_date(t), 'Mon, 01-Jan-2007 01:54:21 GMT')