From b3ee80a0cf0e60876f03b797d2bdc69505dbdfcb Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Wed, 26 Sep 2012 21:10:17 +0200 Subject: [PATCH] Fixed parse_http_date docstring and moved related tests Refs #18675. --- django/utils/http.py | 3 +- .../conditional_processing/models.py | 29 ------------------- tests/regressiontests/utils/http.py | 29 +++++++++++++++++++ tests/regressiontests/utils/tests.py | 2 +- 4 files changed, 31 insertions(+), 32 deletions(-) diff --git a/django/utils/http.py b/django/utils/http.py index d3c70f1209..1c3b0039b5 100644 --- a/django/utils/http.py +++ b/django/utils/http.py @@ -118,8 +118,7 @@ def parse_http_date(date): The three formats allowed by the RFC are accepted, even if only the first one is still in widespread use. - Returns an floating point number expressed in seconds since the epoch, in - UTC. + Returns an integer expressed in seconds since the epoch, in UTC. """ # emails.Util.parsedate does the job for RFC1123 dates; unfortunately # RFC2616 makes it mandatory to support RFC850 dates too. So we roll diff --git a/tests/regressiontests/conditional_processing/models.py b/tests/regressiontests/conditional_processing/models.py index d0838e153d..b47fdf6fb5 100644 --- a/tests/regressiontests/conditional_processing/models.py +++ b/tests/regressiontests/conditional_processing/models.py @@ -4,8 +4,6 @@ from __future__ import unicode_literals from datetime import datetime 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' @@ -129,30 +127,3 @@ class ConditionalGet(TestCase): self.client.defaults['HTTP_IF_NONE_MATCH'] = r'"\"' response = self.client.get('/condition/etag/') 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)) diff --git a/tests/regressiontests/utils/http.py b/tests/regressiontests/utils/http.py index f22e05496d..6d3bc025af 100644 --- a/tests/regressiontests/utils/http.py +++ b/tests/regressiontests/utils/http.py @@ -1,3 +1,4 @@ +from datetime import datetime import sys from django.http import HttpResponse, utils @@ -7,6 +8,7 @@ from django.utils import http from django.utils import six from django.utils import unittest + class TestUtilsHttp(unittest.TestCase): 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')]: self.assertEqual(http.int_to_base36(n), b36) 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)) diff --git a/tests/regressiontests/utils/tests.py b/tests/regressiontests/utils/tests.py index 47af07561a..11dd7c320e 100644 --- a/tests/regressiontests/utils/tests.py +++ b/tests/regressiontests/utils/tests.py @@ -17,7 +17,7 @@ from .encoding import TestEncodingUtils from .feedgenerator import FeedgeneratorTest from .functional import FunctionalTestCase from .html import TestUtilsHtml -from .http import TestUtilsHttp +from .http import TestUtilsHttp, ETagProcessingTests, HttpDateProcessingTests from .ipv6 import TestUtilsIPv6 from .jslex import JsToCForGettextTest, JsTokensTest from .module_loading import CustomLoader, DefaultLoader, EggLoader