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.

Respuestas a la pregunta(1)

Su respuesta a la pregunta