Я пытаюсь написать тесты для класса с такими методами, как:
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()
возвращает что-то предсказуемое.
Я читал много примеров использования Mock в тестах, но не нашел ничего похожего на то, что мне нужно, и я не могу понять, как использовать его в моих тестах.
Я разделил метод get_now()
на случай, если было бы проще высмеять это, вместо datetime.datetime.now()
, но я все еще тупик. Любые мысли о том, как писать UnitTests для этого с помощью Mock? (Это все в Django, fwiw, я не уверен, что это имеет значение в этом случае.)