Kann mir jemand zeigen, wie man Komponententests für sqlalchemy Modell schreiben, die ich mit Nase erstellt.Ich brauche eine Probe von Python Einheitsprüfung sqlalchemy Modell mit Nase
Ich brauche nur ein einfaches Beispiel.
Danke.
Kann mir jemand zeigen, wie man Komponententests für sqlalchemy Modell schreiben, die ich mit Nase erstellt.Ich brauche eine Probe von Python Einheitsprüfung sqlalchemy Modell mit Nase
Ich brauche nur ein einfaches Beispiel.
Danke.
Sie können einfach eine SQLite-In-Memory-Datenbank erstellen und Ihre Sitzung an diese binden.
Beispiel:
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()
# ...
Große Antwort! Ich denke, Sie müssen 'create_all' für das MetaData-Objekt aufrufen, um tatsächlich Tabellen zu erstellen. Wenn db-vendor-spezifische Datentypen verwendet werden, werden einige der DDLs möglicherweise nicht ausgeführt. – van
Gute Punkte. Ich habe das Beispiel aktualisiert, um einen Aufruf von create_all anzuzeigen. – codeape
Dies ist eine schreckliche Antwort, wenn SQLLite nicht Ihre Produktionsdatenbank ist. Testen Sie niemals mit einer anderen Datenbank als der Datenbank, die Sie in der Produktion verwenden. Sie werden viele Unterschiede haben und Sie bereiten sich auf eine Katastrophe vor. –
Schauen Sie sich die fixture Projekt. Wir haben die Nase benutzt, um das zu testen, und es ist auch eine Möglichkeit, Daten deklarativ zu definieren, um sie zu testen. Es wird einige extensive Beispiele geben, die Sie dort verwenden können!
Siehe auch fixture documentation.
Genauer gesagt: Brauchen Sie Hilfe beim Einrichten der Nase? oder wie man ein Modell testet? – van