Add helper method total_seconds in timeutils.py

Almost every OpenStack project is using hardcode to calculate duration
like 'delta.days * 24 * 3600', even 2592000. Method delta_seconds takes
a timedelta instance as input to compute total seconds.

Method delta_seconds also is refactored to call new method.

Change-Id: I397bae402e012c28aaa6aa2bb10170b83eeeaa8c
This commit is contained in:
Chang Bo Guo
2013-11-12 05:40:32 -08:00
parent 44e8222321
commit f3b5f17d5b
2 changed files with 14 additions and 0 deletions

View File

@@ -178,6 +178,15 @@ def delta_seconds(before, after):
datetime objects (as a float, to microsecond resolution).
"""
delta = after - before
return total_seconds(delta)
def total_seconds(delta):
"""Return the total seconds of datetime.timedelta object.
Compute total seconds of datetime.timedelta, datetime.timedelta
doesn't have method total_seconds in Python2.6, calculate it manually.
"""
try:
return delta.total_seconds()
except AttributeError:

View File

@@ -184,6 +184,11 @@ class TimeUtilsTest(test.BaseTestCase):
self.assertAlmostEquals(604859.123456,
timeutils.delta_seconds(before, after))
def test_total_seconds(self):
delta = datetime.timedelta(days=1, hours=2, minutes=3, seconds=4.5)
self.assertAlmostEquals(93784.5,
timeutils.total_seconds(delta))
def test_iso8601_from_timestamp(self):
utcnow = timeutils.utcnow()
iso = timeutils.isotime(utcnow)