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 |