Может кто-нибудь покажет мне, как писать модульные тесты для модели sqlalchemy, которую я создал с использованием носа.Мне нужен образец тестирования модуля python sqlalchemy с носом
Мне просто нужен простой пример.
Спасибо.
Может кто-нибудь покажет мне, как писать модульные тесты для модели sqlalchemy, которую я создал с использованием носа.Мне нужен образец тестирования модуля python sqlalchemy с носом
Мне просто нужен простой пример.
Спасибо.
Вы можете просто создать базу данных SQLite в памяти и связать свою сессию с этим.
Пример:
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()
# ...
Отличный ответ! Я думаю, вам нужно вызвать 'create_all' в объекте MetaData для создания таблиц. Кроме того, если используются типы данных, специфичные для db-vendor, тогда некоторые из DDL могут не работать. – van
Хорошие очки. Я обновил пример, чтобы показать вызов create_all. – codeape
Это ужасный ответ, если SQLLite не является вашей производственной базой данных. Никогда не тестируйте другую базу данных, чем та, которую вы используете на производстве. У них будет много разногласий, и вы настроитесь на катастрофу. –
Заканчивать проект fixture. Мы использовали нос, чтобы проверить это, и это также способ декларативно определить данные для тестирования против, там будут некоторые обширные примеры для вас там!
См. Также fixture documentation.
Конкретно: вам нужна помощь в настройке носа? или как проверить модель? – van