summaryrefslogtreecommitdiffstats
path: root/openstack/common/timeutils.py
diff options
context:
space:
mode:
Diffstat (limited to 'openstack/common/timeutils.py')
-rw-r--r--openstack/common/timeutils.py16
1 files changed, 13 insertions, 3 deletions
diff --git a/openstack/common/timeutils.py b/openstack/common/timeutils.py
index 4bf19a5..ea69164 100644
--- a/openstack/common/timeutils.py
+++ b/openstack/common/timeutils.py
@@ -87,7 +87,10 @@ def utcnow_ts():
def utcnow():
"""Overridable version of utils.utcnow."""
if utcnow.override_time:
- return utcnow.override_time
+ try:
+ return utcnow.override_time.pop(0)
+ except AttributeError:
+ return utcnow.override_time
return datetime.datetime.utcnow()
@@ -95,14 +98,21 @@ utcnow.override_time = None
def set_time_override(override_time=datetime.datetime.utcnow()):
- """Override utils.utcnow to return a constant time."""
+ """
+ Override utils.utcnow to return a constant time or a list thereof,
+ one at a time.
+ """
utcnow.override_time = override_time
def advance_time_delta(timedelta):
"""Advance overridden time using a datetime.timedelta."""
assert(not utcnow.override_time is None)
- utcnow.override_time += timedelta
+ try:
+ for dt in utcnow.override_time:
+ dt += timedelta
+ except TypeError:
+ utcnow.override_time += timedelta
def advance_time_seconds(seconds):