freezegun で Python コード内の時間を固定して PyTest を行う2021年01月14日 13時37分51秒

時刻に関する関数は特にテストが難しい。Python には freezegun というライブラリがあり、それで時刻を任意に指定できる。

まずは、pip install で freezegun をインストール。

% pip install freezegun

幾つか使い方はあるが、デコレータ式がテストには便利だろう。

from freezegun import freeze_time
import datetime
import pytest

@freeze_time("2020-01-14")
def test_datetime():
    assert datetime.datetime.now() == datetime.datetime(2020, 1, 14)
一年前の日付でテストをする。

分までの指定。

@freeze_time("2020-01-14 12:34:56")
タイムゾーンを含めた指定も出来る。
@freeze_time("2020-01-14 12:34:56", tz_offset=+9)

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2021/01/14/9337485/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。