Fixed parse_http_date docstring and moved related tests

Refs #18675.
This commit is contained in:
Claude Paroz 2012-09-26 21:10:17 +02:00
parent bb7da7844f
commit b3ee80a0cf
4 changed files with 31 additions and 32 deletions

View File

@ -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

View File

@ -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):
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))

View File

@ -1,3 +1,4 @@
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
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):
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))

View File

@ -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