def test_baixar_livros_instancia_Consulta_uma_vez( stub_executar_requisicao, resultado_em_duas_paginas ): mock_consulta = MockSearch() stub_executar_requisicao.side_effect = resultado_em_duas_paginas Response.qtd_docs_por_pagina = 3 arquivo = ["/tmp/arquivo1", "/tmp/arquivo2", "/tmp/arquivo3"] with patch("library.books.Search", mock_consulta.Search): download_book(arquivo, None, None, "Python") mock_consulta.verifier()
def test_download_book_chama_executar_requisicao_n_vezes( mock_executar_requisicao, resultado_em_duas_paginas ): mock_executar_requisicao.side_effect = resultado_em_duas_paginas Response.qtd_docs_por_pagina = 3 arquivo = ["/tmp/arquivo1", "/tmp/arquivo2", "/tmp/arquivo3"] download_book(arquivo, None, None, "python") assert mock_executar_requisicao.call_args_list == [ call("https://buscarlivros?q=python&page=1", 10), call("https://buscarlivros?q=python&page=2", 10), ]
def test_download_book_chama_escrever_em_arquivo_para_pagina_1_e_3( stub_executar_requisicao, resultado_em_tres_paginas_erro_na_pagina_2 ): stub_executar_requisicao.side_effect = resultado_em_tres_paginas_erro_na_pagina_2 Response.qtd_docs_por_pagina = 3 arquivo = ["/tmp/arquivo1", "/tmp/arquivo2", "/tmp/arquivo3"] with patch("library.books.write_file") as mock_escrever: mock_escrever.side_effect = [None, None] download_book(arquivo, None, None, "python") assert mock_escrever.call_args_list == [ call(arquivo[0], resultado_em_tres_paginas_erro_na_pagina_2[0]), ]
def test_download_book_chama_escrever_em_arquivo_tres_vezes( stub_executar_requisicao, resultado_em_tres_paginas ): stub_executar_requisicao.side_effect = resultado_em_tres_paginas Response.qtd_docs_por_pagina = 3 arquivo = ["/tmp/arquivo1", "/tmp/arquivo2", "/tmp/arquivo3"] with patch("library.books.write_file") as mock_escrever: mock_escrever.return_value = None download_book(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_download_book_instancia_Resposta_tres_vezes( stub_executar_requisicao, resultado_em_tres_paginas ): stub_executar_requisicao.side_effect = resultado_em_tres_paginas Response.qtd_docs_por_pagina = 3 arquivo = ["/tmp/arquivo1", "/tmp/arquivo2", "/tmp/arquivo3"] with patch("library.books.Response") as MockResposta: MockResposta.side_effect = [ Response(resultado_em_tres_paginas[0]), Response(resultado_em_tres_paginas[1]), Response(resultado_em_tres_paginas[2]), ] download_book(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]), ]