Kaydet (Commit) b3ee80a0 authored tarafından Claude Paroz's avatar Claude Paroz

Fixed parse_http_date docstring and moved related tests

Refs #18675.
üst bb7da784
...@@ -118,8 +118,7 @@ def parse_http_date(date): ...@@ -118,8 +118,7 @@ def parse_http_date(date):
The three formats allowed by the RFC are accepted, even if only the first The three formats allowed by the RFC are accepted, even if only the first
one is still in widespread use. one is still in widespread use.
Returns an floating point number expressed in seconds since the epoch, in Returns an integer expressed in seconds since the epoch, in UTC.
UTC.
""" """
# emails.Util.parsedate does the job for RFC1123 dates; unfortunately # emails.Util.parsedate does the job for RFC1123 dates; unfortunately
# RFC2616 makes it mandatory to support RFC850 dates too. So we roll # RFC2616 makes it mandatory to support RFC850 dates too. So we roll
......
...@@ -4,8 +4,6 @@ from __future__ import unicode_literals ...@@ -4,8 +4,6 @@ from __future__ import unicode_literals
from datetime import datetime from datetime import datetime
from django.test import TestCase from django.test import TestCase
from django.utils import unittest
from django.utils.http import parse_etags, quote_etag, parse_http_date
FULL_RESPONSE = 'Test conditional get response' FULL_RESPONSE = 'Test conditional get response'
...@@ -129,30 +127,3 @@ class ConditionalGet(TestCase): ...@@ -129,30 +127,3 @@ class ConditionalGet(TestCase):
self.client.defaults['HTTP_IF_NONE_MATCH'] = r'"\"' self.client.defaults['HTTP_IF_NONE_MATCH'] = r'"\"'
response = self.client.get('/condition/etag/') response = self.client.get('/condition/etag/')
self.assertFullResponse(response, check_last_modified=False) self.assertFullResponse(response, check_last_modified=False)
class ETagProcessing(unittest.TestCase):
def testParsing(self):
etags = parse_etags(r'"", "etag", "e\"t\"ag", "e\\tag", W/"weak"')
self.assertEqual(etags, ['', 'etag', 'e"t"ag', r'e\tag', 'weak'])
def testQuoting(self):
quoted_etag = quote_etag(r'e\t"ag')
self.assertEqual(quoted_etag, r'"e\\t\"ag"')
class HttpDateProcessing(unittest.TestCase):
def testParsingRfc1123(self):
parsed = parse_http_date('Sun, 06 Nov 1994 08:49:37 GMT')
self.assertEqual(datetime.utcfromtimestamp(parsed),
datetime(1994, 11, 6, 8, 49, 37))
def testParsingRfc850(self):
parsed = parse_http_date('Sunday, 06-Nov-94 08:49:37 GMT')
self.assertEqual(datetime.utcfromtimestamp(parsed),
datetime(1994, 11, 6, 8, 49, 37))
def testParsingAsctime(self):
parsed = parse_http_date('Sun Nov 6 08:49:37 1994')
self.assertEqual(datetime.utcfromtimestamp(parsed),
datetime(1994, 11, 6, 8, 49, 37))
from datetime import datetime
import sys import sys
from django.http import HttpResponse, utils from django.http import HttpResponse, utils
...@@ -7,6 +8,7 @@ from django.utils import http ...@@ -7,6 +8,7 @@ from django.utils import http
from django.utils import six from django.utils import six
from django.utils import unittest from django.utils import unittest
class TestUtilsHttp(unittest.TestCase): class TestUtilsHttp(unittest.TestCase):
def test_same_origin_true(self): def test_same_origin_true(self):
...@@ -132,3 +134,30 @@ class TestUtilsHttp(unittest.TestCase): ...@@ -132,3 +134,30 @@ class TestUtilsHttp(unittest.TestCase):
for n, b36 in [(0, '0'), (1, '1'), (42, '16'), (818469960, 'django')]: for n, b36 in [(0, '0'), (1, '1'), (42, '16'), (818469960, 'django')]:
self.assertEqual(http.int_to_base36(n), b36) self.assertEqual(http.int_to_base36(n), b36)
self.assertEqual(http.base36_to_int(b36), n) self.assertEqual(http.base36_to_int(b36), n)
class ETagProcessingTests(unittest.TestCase):
def testParsing(self):
etags = http.parse_etags(r'"", "etag", "e\"t\"ag", "e\\tag", W/"weak"')
self.assertEqual(etags, ['', 'etag', 'e"t"ag', r'e\tag', 'weak'])
def testQuoting(self):
quoted_etag = http.quote_etag(r'e\t"ag')
self.assertEqual(quoted_etag, r'"e\\t\"ag"')
class HttpDateProcessingTests(unittest.TestCase):
def testParsingRfc1123(self):
parsed = http.parse_http_date('Sun, 06 Nov 1994 08:49:37 GMT')
self.assertEqual(datetime.utcfromtimestamp(parsed),
datetime(1994, 11, 6, 8, 49, 37))
def testParsingRfc850(self):
parsed = http.parse_http_date('Sunday, 06-Nov-94 08:49:37 GMT')
self.assertEqual(datetime.utcfromtimestamp(parsed),
datetime(1994, 11, 6, 8, 49, 37))
def testParsingAsctime(self):
parsed = http.parse_http_date('Sun Nov 6 08:49:37 1994')
self.assertEqual(datetime.utcfromtimestamp(parsed),
datetime(1994, 11, 6, 8, 49, 37))
...@@ -17,7 +17,7 @@ from .encoding import TestEncodingUtils ...@@ -17,7 +17,7 @@ from .encoding import TestEncodingUtils
from .feedgenerator import FeedgeneratorTest from .feedgenerator import FeedgeneratorTest
from .functional import FunctionalTestCase from .functional import FunctionalTestCase
from .html import TestUtilsHtml from .html import TestUtilsHtml
from .http import TestUtilsHttp from .http import TestUtilsHttp, ETagProcessingTests, HttpDateProcessingTests
from .ipv6 import TestUtilsIPv6 from .ipv6 import TestUtilsIPv6
from .jslex import JsToCForGettextTest, JsTokensTest from .jslex import JsToCForGettextTest, JsTokensTest
from .module_loading import CustomLoader, DefaultLoader, EggLoader from .module_loading import CustomLoader, DefaultLoader, EggLoader
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment