Qualcuno può mostrarmi come scrivere test unitari per il modello sqlalchemy che ho creato usando il naso.Ho bisogno di un campione di unità Python per testare il modello sqlalchemy con il naso
Ho solo bisogno di un semplice esempio.
Grazie.
Qualcuno può mostrarmi come scrivere test unitari per il modello sqlalchemy che ho creato usando il naso.Ho bisogno di un campione di unità Python per testare il modello sqlalchemy con il naso
Ho solo bisogno di un semplice esempio.
Grazie.
È possibile semplicemente creare un database SQLite in memoria e associare la sessione a tale.
Esempio:
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()
# ...
Ottima risposta! Penso che sia necessario chiamare 'create_all' sull'oggetto MetaData per creare effettivamente tabelle. Anche se vengono utilizzati tipi di dati specifici di db-vendor, alcuni DDL potrebbero non essere eseguiti. – van
Buoni punti. Ho aggiornato l'esempio per mostrare una chiamata a create_all. – codeape
Questa è una risposta orribile se SQLLite non è il tuo database di produzione. Non testare mai con un database diverso da quello che si sta utilizzando in produzione. Avranno molte differenze e ti stai preparando per un disastro. –
Partenza il progetto fixture. Abbiamo usato il naso per testarlo ed è anche un modo per definire in modo dichiarativo i dati da testare, ci saranno alcuni esempi completi da usare lì!
Vedere anche fixture documentation.
Sii più specifico: hai bisogno di aiuto su come impostare il naso? o come testare un modello? – van