Issue 6280: Tests and simpler implementation for calendar.timegm
This commit is contained in:
parent
4e749a1113
commit
43ca710a44
@ -587,17 +587,12 @@ def formatstring(cols, colwidth=_colwidth, spacing=_spacing):
|
|||||||
|
|
||||||
|
|
||||||
EPOCH = 1970
|
EPOCH = 1970
|
||||||
_EPOCH_ORD = datetime.date(EPOCH, 1, 1).toordinal()
|
_EPOCH_DATETIME = datetime.datetime(EPOCH, 1, 1)
|
||||||
|
_SECOND = datetime.timedelta(seconds=1)
|
||||||
|
|
||||||
def timegm(tuple):
|
def timegm(tuple):
|
||||||
"""Unrelated but handy function to calculate Unix timestamp from GMT."""
|
"""Unrelated but handy function to calculate Unix timestamp from GMT."""
|
||||||
year, month, day, hour, minute, second = tuple[:6]
|
return (datetime.datetime(*tuple[:6]) - _EPOCH_DATETIME) // _SECOND
|
||||||
days = datetime.date(year, month, 1).toordinal() - _EPOCH_ORD + day - 1
|
|
||||||
hours = days*24 + hour
|
|
||||||
minutes = hours*60 + minute
|
|
||||||
seconds = minutes*60 + second
|
|
||||||
return seconds
|
|
||||||
|
|
||||||
|
|
||||||
def main(args):
|
def main(args):
|
||||||
|
@ -2,7 +2,7 @@ import calendar
|
|||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
from test import support
|
from test import support
|
||||||
|
import time
|
||||||
|
|
||||||
result_2004_text = """
|
result_2004_text = """
|
||||||
2004
|
2004
|
||||||
@ -381,13 +381,21 @@ class SundayTestCase(MonthCalendarTestCase):
|
|||||||
# A 31-day december starting on friday (2+7+7+7+7+1 days)
|
# A 31-day december starting on friday (2+7+7+7+7+1 days)
|
||||||
self.check_weeks(1995, 12, (2, 7, 7, 7, 7, 1))
|
self.check_weeks(1995, 12, (2, 7, 7, 7, 7, 1))
|
||||||
|
|
||||||
|
class TimegmTestCase(unittest.TestCase):
|
||||||
|
TIMESTAMPS = [0, 10, 100, 1000, 10000, 100000, 1000000,
|
||||||
|
1234567890, 1262304000, 1275785153,]
|
||||||
|
def test_timegm(self):
|
||||||
|
for secs in self.TIMESTAMPS:
|
||||||
|
tuple = time.gmtime(secs)
|
||||||
|
self.assertEqual(secs, calendar.timegm(tuple))
|
||||||
|
|
||||||
def test_main():
|
def test_main():
|
||||||
support.run_unittest(
|
support.run_unittest(
|
||||||
OutputTestCase,
|
OutputTestCase,
|
||||||
CalendarTestCase,
|
CalendarTestCase,
|
||||||
MondayTestCase,
|
MondayTestCase,
|
||||||
SundayTestCase
|
SundayTestCase,
|
||||||
|
TimegmTestCase,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user