1

私は初心者で、単体テストに合格しようとしていますが、DateTimeField に問題があります。

私の設定では、USE_TZ = True と TIME_ZONE が設定されています。

MongoDb を使用します。

最初に、テストで、オフセットナイーブとオフセット認識の比較について不平を言うエラーが表示されます。auto_now_add=True を datetime.datetime.utcnow().replace(tzinfo=utc)) に変更しました

TIME_ZONE に正しい時刻と日付をまだ取得できませんでした。

これらをデータベースに入れた後 (settings.py)

'OPTIONS' : {
    'tz_aware' : True, 
}

これで TIME_ZONE を変更できるようになり、時刻と日付は utc ではなくローカルタイムで表示されます。

しかし、テストモデルを実行すると:

nf.data_emissao = timezone.now()
...

#check if the nf is in database
lista_nfse = Nfse.objects.all()
self.assertEquals(lista_nfse.count(), 1)

nfse_no_banco = lista_nfse[0]
...
self.assertEquals( nfse_no_banco.data_emissao, nf.data_emissao)

私のテストは失敗します:

AssertionError: datetime.datetime(2013, 8, 10, 2, 49, 59, 391000, tzinfo=
<bson.tz_util.FixedOffset object at 0x2bdd1d0>) != datetime.datetime(2013, 8, 10, 2, 49, 59, 
391122, tzinfo=<UTC>)

391000 と 391122 の差分が表示されますが、修正方法がわかりません。

4

1 に答える 1