O teste
def test_executar_requisicao_loga_mensagem_de_erro_de_http_error(stub_urlopen, caplog):
fp = mock_open
fp.close = Mock()
stub_urlopen.side_effect = HTTPError(Mock(), Mock(), "mensagem de erro", Mock(), fp)
executar_requisicao("http://")
assert len(caplog.records) == 1
for registro in caplog.records:
assert "mensagem de erro" in registro.message
poderia serguir a mesma lógica do
def test_escrever_em_arquivo_registra_excecao_que_nao_foi_possivel_criar_diretorio():
arquivo = "/tmp/arquivo.json"
conteudo = "dados de livros"
duble_logging = DubleLogging()
with patch("colecao.livros.os.makedirs", duble_makedirs):
with patch("colecao.livros.logging", duble_logging):
escrever_em_arquivo(arquivo, conteudo)
assert "Não foi possível criar diretório /tmp" in duble_logging.mensagens
em que criamos um dublê para o logging? Dai, ao invés de testar o conteúdo do caplog poderíamos testar diretamente o conteúdo do logging, não?