nosetest是 Turbogeras 2.0 中的默认测试框架。该应用程序有一个用于初始化数据库的 websetup.py 模块。我在我的开发和生产环境中使用 mysql 并且 websetup 工作正常,但是nosetest在内存上使用 sqlite 并且当它尝试初始化数据库时会发送错误:
TypeError:SQLite 日期、时间和日期时间类型仅接受 Python 日期时间对象作为输入。
我已经检测到何时发生这种情况并且处于导入状态:
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)
我怎么知道nosetest何时运行?我试过了:
if globals().has_key('ModelTest'):
和
if vars().has_key('ModelTest'):
第一个没有结果,第二个有错误