datetimeをmockingして日付のテストをしやすくするライブラリfreezegun

ロジックにdatetime.nowとか入ってるとテストコードを書くのが面倒だったりしますが、そんなときに便利なのかなと

freezegun
http://stevepulec.com/freezegun/


上記のwebページ見れば使い方はほとんどわかるんですが、一応手を動かして試してみました。

# coding=utf-8
from freezegun import freeze_time
import datetime


# デコレータで
@freeze_time("2012-01-14")
def sample():
    assert datetime.datetime.now() == datetime.datetime(2012, 01, 14)
sample()

# withで
with freeze_time("2012-01-14"):
    assert datetime.datetime.now() == datetime.datetime(2012, 01, 14)

datetime.nowをmockしてくれるんですね