nosetest est le framework de test par défaut de Turbogeras 2.0. L'application a un module websetup.py qui initialise la base de données. J'utilise MySQL pour mon environnement de développement et de production et WebSetup fonctionne très bien, mais nosetest utilise sqlite sur la mémoire et quand il essaie d'initialiser le DB envoie une erreur:Comment savoir quand nosetest s'exécute par programme
TypeError: SQLite Date, Time, and DateTime types only accept Python datetime objects as input.
J'ai détecté lorsque cela se produit et est dans le fase d'import:
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)
Comment puis-je savoir quand nosetest fonctionne? J'ai essayer:
if globals().has_key('ModelTest'):
et
if vars().has_key('ModelTest'):
Le premier avec aucun résultat et le second avec l'erreur
Ça l'a fait! juste avant l'assignation de variable, j'ai mis la condition et maintenant mes nosestests fonctionnent à nouveau. Je vous remercie – Juparave