示例#1
0
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()
示例#2
0
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"),
    ]
示例#3
0
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]),
        ]
示例#4
0
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]),
        ]
示例#5
0
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]),
        ]