Jak pozorować datetime.now () w metodzie klasowej dla testów jednostkowych?

Próbuję napisać testy dla klasy, która ma takie metody jak:

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

Chcę to przetestować i aby to zrobić, muszę się upewnić, żedatetime.datetime.now() wywołanie zwraca coś przewidywalnego.

Czytałem wiele przykładów użyciaDrwić w testach, ale nie znalazłem niczego podobnego do tego, czego potrzebuję, i nie mogę się dowiedzieć, jak go użyć w moich testach.

Oddzieliłemget_now() metoda na wypadek, gdyby łatwiej było z niej wykpić, zamiastdatetime.datetime.now(), ale wciąż jestem zakłopotany. Jakieś przemyślenia, jak napisać do tego UnitTests za pomocą Mocka? (To wszystko w Django, fwiw; nie jestem pewien, czy w tym przypadku ma to znaczenie).

questionAnswers(4)

yourAnswerToTheQuestion