Fx自動売買システムを作っているとき、Modelsに格納されたデータのテストを行いました。
この時、DateTime型を格納するとき勝手にタイムゾーンがついてしまい、テストエラーになっていまいます。
#テストデータ登録 db.InputTable( no = 1 ,interval = 5 ,date = datetime(2020, 3, 26, 10, 11, 25) ,open = 100.03 ,high = 101.03 ,low = 99.03 ,close = 99.98 ).save() #期待値 expect1 = pd.DataFrame([ 1 ,5 ,datetime(2020, 3, 26, 10, 11, 25) ,100.03 ,101.03 ,99.03 ,99.98 ]) #テスト実行 result1 = testee.get_table() #結果 assert_frame_equal(result1,expect1)
エラーコマンド
Attribute "dtype" are different [left]: datetime64[ns, UTC] [right]: datetime64[ns]
DB登録時に勝手にUTCが付きます
これsettings.pyの初期値が
LANGUAGE_CODE = 'en-us' TIME_ZONE = 'UTC' USE_I18N = True USE_L10N = True USE_TZ = True
このようになっているからです。
特にタイムゾーンが要らない場合は
USE_TZ = False
に修正しましょう。
コメント