Как смоделировать 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; я не уверен, имеет ли это значение в этом случае.)

Ответы на вопрос(4)

Ваш ответ на вопрос