def test_baixar_livros_instancia_Consulta_uma_vez(stub_executar_requisicao, resultado_em_duas_paginas): mock_consulta = MockConsulta() stub_executar_requisicao.side_effect = resultado_em_duas_paginas Resposta.qtd_docs_por_pagina = 3 arquivo = ["/tmp/arquivo1", "/tmp/arquivo2", "/tmp/arquivo3"] with patch("colecao.livros.Consulta", mock_consulta.Consulta): baixar_livros(arquivo, None, None, "Python") mock_consulta.verificar()
def test_baixar_livros_chama_executar_requisicao_n_vezes( mock_executar_requisicao, resultado_em_duas_paginas): mock_executar_requisicao.side_effect = resultado_em_duas_paginas Resposta.qtd_docs_por_pagina = 3 arquivo = ["/tmp/arquivo1", "/tmp/arquivo2", "/tmp/arquivo3"] baixar_livros(arquivo, None, None, "python") assert mock_executar_requisicao.call_args_list == [ call("https://buscarlivros?q=python&page=1"), call("https://buscarlivros?q=python&page=2"), ]
def test_baixar_livros_chama_escrever_em_arquivo_para_pagina_2_e_3( stub_executar_requisicao, resultado_em_tres_paginas_erro_na_pagina_1): stub_executar_requisicao.side_effect = resultado_em_tres_paginas_erro_na_pagina_1 Resposta.qtd_docs_por_pagina = 3 arquivo = ["/tmp/arquivo1", "/tmp/arquivo2", "/tmp/arquivo3"] with patch("colecao.livros.escrever_em_arquivo") as mock_escrever: mock_escrever.side_effect = [None, None] baixar_livros(arquivo, None, None, "python") assert mock_escrever.call_args_list == [ call(arquivo[1], resultado_em_tres_paginas_erro_na_pagina_1[1]), call(arquivo[2], resultado_em_tres_paginas_erro_na_pagina_1[2]), ]
def test_baixar_livros_chama_escrever_em_arquivo_tres_vezes( stub_executar_requisicao, resultado_em_tres_paginas): stub_executar_requisicao.side_effect = resultado_em_tres_paginas Resposta.qtd_docs_por_pagina = 3 arquivo = ["/tmp/arquivo1", "/tmp/arquivo2", "/tmp/arquivo3"] with patch("colecao.livros.escrever_em_arquivo") as mock_escrever: mock_escrever.return_value = None baixar_livros(arquivo, None, None, "python") assert mock_escrever.call_args_list == [ call(arquivo[0], resultado_em_tres_paginas[0]), call(arquivo[1], resultado_em_tres_paginas[1]), call(arquivo[2], resultado_em_tres_paginas[2]), ]
def test_baixar_livros_instancia_Resposta_tres_vezes( stub_executar_requisicao, resultado_em_tres_paginas): stub_executar_requisicao.side_effect = resultado_em_tres_paginas Resposta.qtd_docs_por_pagina = 3 arquivo = ["/tmp/arquivo1", "/tmp/arquivo2", "/tmp/arquivo3"] with patch("colecao.livros.Resposta") as MockResposta: MockResposta.side_effect = [ Resposta(resultado_em_tres_paginas[0]), Resposta(resultado_em_tres_paginas[1]), Resposta(resultado_em_tres_paginas[2]), ] baixar_livros(arquivo, None, None, "python") assert MockResposta.call_args_list == [ call(resultado_em_tres_paginas[0]), call(resultado_em_tres_paginas[1]), call(resultado_em_tres_paginas[2]), ]