En una prueba unitaria de matraz, ¿cómo puedo simular objetos en el objeto `g` de solicitud global?
Tengo una aplicación de matraz que está configurando una conexión de base de datos en unbefore_filter
, muy parecido aesta:
@app.before_request
def before_request():
g.db = connect_db()
Ahora: estoy escribiendo algunas pruebas unitarias y las hagono quiero que lleguen a la base de datos. Quiero reemplazarg.db
con un objeto simulado en el que puedo establecer expectativas.
Mis pruebas estan usandoapp.test_client()
, como queda demostrado en la documentación del matraz.aquí. Un ejemplo de prueba se ve algo así como
def test(self):
response = app.test_client().post('/endpoint', data={..})
self.assertEqual(response.status_code, 200)
...
Las pruebas funcionan y pasan, pero están llegando a la base de datos y, como dije, quiero reemplazar el acceso a la base de datos con objetos simulados. No veo ninguna forma de entrartest_client
para acceder a lag
objeto o alterar los before_filters.