Encontré que la manera más fácil es simplemente usar un volcado de SQL para la base de datos de prueba. Crea una base de datos, rellena con accesorios y escríbela en un archivo. Simplemente llame al load_fixtures
antes de ejecutar sus pruebas (o siempre que desee restablecer el DB). Este método ciertamente puede mejorarse, pero ha sido lo suficientemente bueno para mis necesidades.
import os
import unittest2
import tornado.database
settings = dict(
db_host="127.0.0.1:3306",
db_name="testdb",
db_user="testdb",
db_password="secret",
db_fixtures_file=os.path.join(os.path.dirname(os.path.abspath(__file__)), 'fixtures.sql'),
)
def load_fixtures():
"""Fixtures are stored in an SQL dump.
"""
os.system("psql %s --user=%s --password=%s < %s" % (settings['db_name'],
settings['db_user'], settings['db_password'], settings['db_fixtures_file']))
return tornado.database.Connection(
host=settings['db_host'], database=settings['db_name'],
user=settings['db_user'], password=settings['db_password'])
Como Tornado no lo vincula con una base de datos específica, puede obtener una mejor respuesta a esta pregunta si se refiere a la base de datos específica que está utilizando. Es decir, utilizo un equipo de prueba para mi backend MongoDB, pero es posible que esté utilizando PostgreSQL o MySQL. – ESV
@ESV Problema al burlarse de db aquí, es que no tenemos un esquema de base de datos postgresql descrito para tornado. Por cierto, podemos generar sql a partir de modelos django y usarlo en pruebas. –