OLD | NEW |
(Empty) | |
| 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. |
| 4 |
| 5 from recipe_engine import recipe_api |
| 6 |
| 7 import datetime |
| 8 import time |
| 9 |
| 10 class TimeApi(recipe_api.RecipeApi): |
| 11 def __init__(self, **kwargs): |
| 12 super(TimeApi, self).__init__(**kwargs) |
| 13 self._fake_time = None |
| 14 self._fake_step = None |
| 15 if self._test_data.enabled: |
| 16 self._fake_time = self._test_data.get('seed', 1337000000.0) |
| 17 self._fake_step = self._test_data.get('step', 1.5) |
| 18 |
| 19 def time(self): |
| 20 """Return current timestamp as a float number of seconds since epoch.""" |
| 21 if self._test_data.enabled: |
| 22 self._fake_time += self._fake_step |
| 23 return self._fake_time |
| 24 else: # pragma: no cover |
| 25 return time.time() |
| 26 |
| 27 def utcnow(self): |
| 28 """Return current UTC time as a datetime.datetime.""" |
| 29 if self._test_data.enabled: |
| 30 self._fake_time += self._fake_step |
| 31 return datetime.datetime.utcfromtimestamp(self._fake_time) |
| 32 else: # pragma: no cover |
| 33 return datetime.datetime.utcnow() |
OLD | NEW |