ノーズテストは、 Turbogeras 2.0 のデフォルトのテスト フレームワークです。アプリケーションには、データベースを初期化する websetup.py モジュールがあります。私は開発環境と本番環境に mysql を使用しており、websetup は正常に動作しますが、nosetestはメモリ上で sqlite を使用し、DB を初期化しようとするとエラーが送信されます。
TypeError: SQLite の Date、Time、および DateTime 型は、Python の datetime オブジェクトのみを入力として受け入れます。
これがいつ発生し、インポートフェーズにあるかを検出しました:
csvreader = csv.reader(open('res/products.csv'), delimiter=",", quotechar="'")
for row in csvreader:
p = model.Product(row[1], row[2], row[3], row[4] + ".jpg")
# Even tried to convert the date to a sqlalchemy type
# need to put a conditional here, when testing I don't care this date
import sqlalchemy
dateadded = sqlalchemy.types.DateTime(row[5])
p.dateAdded = dateadded
p.brand_id = row[6]
p.code = row[3]
ccat = model.DBSession.query(model.Category)\
.filter(model.Category.id==int(row[8]) + 3).one()
p.categories.append(ccat)
p.normalPrice = row[9]
p.specialPrice = row[10]
p.discountPrice = row[11]
model.DBSession.add(p)
ノーズテストがいつ実行されているかを知るにはどうすればよいですか? 私は試しました:
if globals().has_key('ModelTest'):
と
if vars().has_key('ModelTest'):
結果のない最初のものとエラーのある2番目のもの