Как смоделировать Python datetime.now () в методе класса для модульного тестирования?
<, p> Я пытаюсь написать тесты для класса, который имеет такие методы, как:
import datetime
import pytz
class MyClass:
def get_now(self, timezone):
return datetime.datetime.now(timezone)
def do_many_things(self, tz_string='Europe/London'):
tz = pytz.timezone(tz_string)
localtime_now = self.get_now(tz)
...
return things
Я хочу проверить это, и для этого мне нужно убедиться, чтоdatetime.datetime.now()
вызов возвращает что-то предсказуемое.
Я читал много примеров использованияиздеваться в тестах, но не нашел ничего такого, что мне нужно, и я не могу понять, как использовать это в моих тестах.
Я отделилget_now()
метод на тот случай, если это легче издеваться, а неdatetime.datetime.now()
Но я все еще в тупике. Любые мысли о том, как написать UnitTests для этого с помощью Mock? (Это все в Django, fwiw; я не уверен, имеет ли это значение в этом случае.)