Index: scripts/slave/recipe_modules/time/api.py |
diff --git a/scripts/slave/recipe_modules/time/api.py b/scripts/slave/recipe_modules/time/api.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..854eb09db8e1c71a9763b7f4974dc250204f8830 |
--- /dev/null |
+++ b/scripts/slave/recipe_modules/time/api.py |
@@ -0,0 +1,33 @@ |
+# Copyright 2014 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+ |
+from recipe_engine import recipe_api |
+ |
+import datetime |
+import time |
+ |
+class TimeApi(recipe_api.RecipeApi): |
+ def __init__(self, **kwargs): |
+ super(TimeApi, self).__init__(**kwargs) |
+ self._fake_time = None |
+ self._fake_step = None |
+ if self._test_data.enabled: |
+ self._fake_time = self._test_data.get('seed', 1337000000.0) |
+ self._fake_step = self._test_data.get('step', 1.5) |
+ |
+ def time(self): |
+ """Return current timestamp as a float number of seconds since epoch.""" |
+ if self._test_data.enabled: |
+ self._fake_time += self._fake_step |
+ return self._fake_time |
+ else: # pragma: no cover |
+ return time.time() |
+ |
+ def utcnow(self): |
+ """Return current UTC time as a datetime.datetime.""" |
+ if self._test_data.enabled: |
+ self._fake_time += self._fake_step |
+ return datetime.datetime.utcfromtimestamp(self._fake_time) |
+ else: # pragma: no cover |
+ return datetime.datetime.utcnow() |