¿Alguien me puede mostrar cómo escribir pruebas unitarias para el modelo sqlalchemy que creé usando nose.Necesito una muestra de python unit testing modelo sqlalchemy con nose
Solo necesito un ejemplo simple.
Gracias.
¿Alguien me puede mostrar cómo escribir pruebas unitarias para el modelo sqlalchemy que creé usando nose.Necesito una muestra de python unit testing modelo sqlalchemy con nose
Solo necesito un ejemplo simple.
Gracias.
Puede simplemente crear una base de datos SQLite en memoria y vincular su sesión a eso.
Ejemplo:
from db import session # probably a contextbound sessionmaker
from db import model
from sqlalchemy import create_engine
def setup():
engine = create_engine('sqlite:///:memory:')
session.configure(bind=engine)
# You probably need to create some tables and
# load some test data, do so here.
# To create tables, you typically do:
model.metadata.create_all(engine)
def teardown():
session.remove()
def test_something():
instances = session.query(model.SomeObj).all()
eq_(0, len(instances))
session.add(model.SomeObj())
session.flush()
# ...
¡Gran respuesta! Creo que debes llamar a 'create_all' en el objeto MetaData para crear tablas. Además, si se utilizan tipos de datos específicos del proveedor de db, es posible que algunos de los DDL no se ejecuten. – van
Buenos puntos. Actualicé el ejemplo para mostrar una llamada a create_all. – codeape
Esta es una respuesta horrible si SQLLite no es su base de datos de producción. Nunca pruebe con una base de datos diferente a la que está utilizando en producción. Tendrán muchas diferencias y te estás preparando para un desastre. –
Salida del proyecto fixture. Usamos la nariz para probar eso y también es una manera de definir declarativamente los datos para evaluar, ¡habrá algunos ejemplos extensos para que los use allí!
Véase también fixture documentation.
Sea más específico: ¿necesita ayuda para configurar la nariz? o cómo probar un modelo? – van