mirror of
https://github.com/python/cpython
synced 2024-10-16 21:24:34 +00:00
Issue #747320: Use email.utils.formatdate() to avoid code duplication
in BaseHTTPRequestHandler Initial patch by karlcow.
This commit is contained in:
parent
0647ef05eb
commit
04bc5b9e48
|
@ -87,6 +87,7 @@
|
|||
"SimpleHTTPRequestHandler", "CGIHTTPRequestHandler",
|
||||
]
|
||||
|
||||
import email.utils
|
||||
import html
|
||||
import http.client
|
||||
import io
|
||||
|
@ -566,12 +567,7 @@ def date_time_string(self, timestamp=None):
|
|||
"""Return the current date and time formatted for a message header."""
|
||||
if timestamp is None:
|
||||
timestamp = time.time()
|
||||
year, month, day, hh, mm, ss, wd, y, z = time.gmtime(timestamp)
|
||||
s = "%s, %02d %3s %4d %02d:%02d:%02d GMT" % (
|
||||
self.weekdayname[wd],
|
||||
day, self.monthname[month], year,
|
||||
hh, mm, ss)
|
||||
return s
|
||||
return email.utils.formatdate(timestamp, usegmt=True)
|
||||
|
||||
def log_date_time_string(self):
|
||||
"""Return the current time formatted for logging."""
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
import html
|
||||
import http.client
|
||||
import tempfile
|
||||
import time
|
||||
from io import BytesIO
|
||||
|
||||
import unittest
|
||||
|
@ -873,6 +874,19 @@ def handle_one_request():
|
|||
self.handler.handle()
|
||||
self.assertRaises(StopIteration, next, close_values)
|
||||
|
||||
def test_date_time_string(self):
|
||||
now = time.time()
|
||||
# this is the old code that formats the timestamp
|
||||
year, month, day, hh, mm, ss, wd, y, z = time.gmtime(now)
|
||||
expected = "%s, %02d %3s %4d %02d:%02d:%02d GMT" % (
|
||||
self.handler.weekdayname[wd],
|
||||
day,
|
||||
self.handler.monthname[month],
|
||||
year, hh, mm, ss
|
||||
)
|
||||
self.assertEqual(self.handler.date_time_string(timestamp=now), expected)
|
||||
|
||||
|
||||
class SimpleHTTPRequestHandlerTestCase(unittest.TestCase):
|
||||
""" Test url parsing """
|
||||
def setUp(self):
|
||||
|
|
Loading…
Reference in a new issue