em um teste de unidade do Flask, como posso fazer mock de objetos no objeto global-g da requisição?
Eu tenho um aplicativo de balão que está configurando uma conexão de banco de dados em umbefore_filter
muito parecido comisto:
@app.before_request
def before_request():
g.db = connect_db()
Agora: estou escrevendo alguns testes unitários e façonão quer que eles atinjam o banco de dados. Eu quero substituirg.db
com um objeto falso que eu possa definir expectativas.
Meus testes estão usandoapp.test_client()
, como é demonstrado na documentação do frascoAqui. Um teste de exemplo parece algo como
def test(self):
response = app.test_client().post('/endpoint', data={..})
self.assertEqual(response.status_code, 200)
...
Os testes funcionam e passam, mas eles estão atingindo o banco de dados e como eu disse, eu quero substituir o acesso ao banco de dados com objetos simulados. Eu não vejo nenhuma maneira detest_client
para acessar og
Objeto ou alterar o before_filters.