Estoy creando algunas pruebas unitarias para mi módulo Python que interactúa con una base de datos MySQL a través de SQLAlchemy. Al leer, deduzco que la mejor manera de hacer esto es crear una base de datos de prueba que pueda consultar como si fuera real. Sin embargo, he hecho esto, ¿cómo debo probar las consultas existentes en el módulo, ya que actualmente todas apuntan a la base de datos en vivo?
La única idea que se me ocurrió fue hacer algo como lo siguiente:
def run_query(engine, db_name='live_db') engine.execute(f'SELECT * FROM {db_name}.<table_name>') Luego podría pasar test_db cuando ejecuto la función desde unittest . ¿Hay una mejor manera?
Para un enfoque de prueba escalable, sugeriría tener una capa DAL intermedia que debería decidir a qué base de datos se debe enrutar la consulta.