def test_deve_montar_dados_de_pagamento_sem_transacao(self): registrador = servicos.RegistraResultado(1234, dados={ 'sucesso': 'true', 'referencia': 2222 }) registrador.resposta = mock.MagicMock( sucesso=True, conteudo={ 'ack': 'success', 'token': 'token-zas', 'paymentinfo_0_amt': '233.40', 'paymentinfo_0_paymentstatus': 'refunded' }) registrador.monta_dados_pagamento() registrador.resultado.should.be.equal({ 'fatal': False, 'pago': False, 'resultado': 'sucesso' }) registrador.dados_pagamento.should.be.equal({ 'identificador_id': 'TOKEN-ZAS', 'valor_pago': 233.40 }) registrador.situacao_pedido.should.be.equal(7)
def test_deve_definir_credenciais(self, credenciador_mock): registrador = servicos.RegistraResultado(1234, dados={}) credenciador_mock.return_value = 'credenciador' registrador.configuracao = 'configuracao' registrador.define_credenciais() registrador.conexao.credenciador.should.be.equal('credenciador') credenciador_mock.assert_called_with(configuracao='configuracao')
def test_deve_montar_dados_de_pagamento_sem_token(self): registrador = servicos.RegistraResultado(1234, dados={ 'sucesso': 'true', 'referencia': 2222 }) registrador.resposta = mock.MagicMock( sucesso=True, conteudo={ 'ack': 'success', 'paymentinfo_0_transactionid': 'transacao-id', 'paymentinfo_0_amt': '233.40', 'paymentinfo_0_paymentstatus': 'completed' }) registrador.monta_dados_pagamento() registrador.resultado.should.be.equal({ 'fatal': False, 'pago': True, 'resultado': 'sucesso' }) registrador.dados_pagamento.should.be.equal({ 'transacao_id': 'TRANSACAO-ID', 'valor_pago': 233.40 }) registrador.situacao_pedido.should.be.equal(4)
def test_nao_deve_obter_informacaoes_de_pagamento_qdo_cancelado( self, gera_mock): registrador = servicos.RegistraResultado(1234, dados={ 'sucesso': 'false', 'referencia': 2222 }) registrador.obtem_informacoes_pagamento() gera_mock.called.should.be.falsy
def test_deve_gerar_dados_envio(self, pagador_mock, extensao_mock): registrador = servicos.RegistraResultado(1234, dados={ 'sucesso': 'true', 'referencia': 2222 }) pagador_mock.side_effect = ['pedido', mock.MagicMock()] malote_mock = mock.MagicMock() malote_mock.to_dict.return_value = 'dados-gerados' extensao_mock.return_value = malote_mock registrador.obtem_informacoes_pagamento() registrador.dados_enviados.should.be.equal('dados-gerados')
def test_deve_obter_informacaoes_de_pagamento_qdo_sucesso( self, gera_mock, conexao_mock): gera_mock.return_value = 'dados_envio' conexao_mock.return_value.get.return_value = 'resultado-get' registrador = servicos.RegistraResultado(1234, dados={ 'sucesso': 'true', 'referencia': 2222 }) registrador.obtem_informacoes_pagamento() registrador.resposta.should.be.equal('resultado-get') registrador.dados_enviados = 'dados_envio'
def test_deve_obter_informacaoes_de_pagamento_chamando_metodos( self, gera_mock, conexao_mock): gera_mock.return_value = 'dados_envio' conexao_mock.return_value.get.return_value = 'resultado-get' registrador = servicos.RegistraResultado(1234, dados={ 'sucesso': 'true', 'referencia': 2222 }) registrador.obtem_informacoes_pagamento() gera_mock.called.should.be.truthy conexao_mock.return_value.get.assert_called_with( 'https://api-3t.sandbox.paypal.com/nvp', dados='dados_envio')
def test_deve_montar_dados_de_pagamento_qdo_cancelado(self): registrador = servicos.RegistraResultado(1234, dados={ 'sucesso': 'false', 'referencia': 2222 }) registrador.resposta = mock.MagicMock(sucesso=False, conteudo={}) registrador.monta_dados_pagamento() registrador.resultado.should.be.equal({ 'fatal': False, 'pago': False, 'resultado': 'cancelado' }) registrador.dados_pagamento.should.be.equal({}) registrador.situacao_pedido.should.be.none
def test_deve_montar_dados_de_pagamento_com_falha(self): registrador = servicos.RegistraResultado(1234, dados={ 'sucesso': 'true', 'referencia': 2222 }) registrador.resposta = mock.MagicMock(sucesso=True, conteudo={ 'ack': 'failure', }) registrador.monta_dados_pagamento() registrador.resultado.should.be.equal({ 'fatal': False, 'pago': False, 'resultado': 'pendente' }) registrador.dados_pagamento.should.be.equal({}) registrador.situacao_pedido.should.be.none
def test_deve_gerar_dados_envio_criando_entidades(self, pagador_mock, extensao_mock): registrador = servicos.RegistraResultado(1234, dados={ 'sucesso': 'true', 'referencia': 2222 }) registrador.configuracao = 'configuracao' parametros_mock = mock.MagicMock() parametros_mock.return_value.obter_para.return_value = 'parametros-extensao' pagador_mock.side_effect = ['pedido', parametros_mock] malote_mock = mock.MagicMock() extensao_mock.return_value = malote_mock registrador.obtem_informacoes_pagamento() pagador_mock.call_args_list[0].should.be.equal( mock.call('Pedido', numero=2222, loja_id=1234)) extensao_mock.assert_called_with('Malote', configuracao='configuracao', metodo='DoExpressCheckoutPayment') pagador_mock.call_args_list[1].should.be.equal( mock.call('ParametrosDeContrato', loja_id=1234))
def test_deve_gerar_dados_envio_chamando_metodos(self, pagador_mock, extensao_mock): registrador = servicos.RegistraResultado(1234, dados={ 'sucesso': 'true', 'referencia': 2222 }) registrador.configuracao = 'configuracao' registrador.extensao = 'extensao_teste' parametros_mock = mock.MagicMock() parametros_mock.obter_para.return_value = 'parametros-extensao' pagador_mock.side_effect = ['pedido', parametros_mock] malote_mock = mock.MagicMock() extensao_mock.return_value = malote_mock registrador.obtem_informacoes_pagamento() parametros_mock.obter_para.assert_called_with('extensao_teste') malote_mock.monta_conteudo.assert_called_with( parametros_contrato='parametros-extensao', dados={ 'referencia': 2222, 'sucesso': 'true' }, pedido='pedido')
def test_deve_ter_redirect_para(self): registrador = servicos.RegistraResultado( 1234, dados={'next_url': 'url-next'}) registrador.redirect_para.should.be.equal('url-next')
def test_deve_montar_conexao(self, obter_mock): obter_mock.return_value = 'conexao' registrador = servicos.RegistraResultado(1234, dados={}) registrador.conexao.should.be.equal('conexao') obter_mock.assert_called_with(formato_envio='text/html', formato_resposta='text/html')
def test_deve_definir_url_sem_sandbox(self): registrador = servicos.RegistraResultado(1234, dados={}) registrador.url.should.be.equal('https://api-3t.paypal.com/nvp')
def test_deve_definir_resposta(self): registrador = servicos.RegistraResultado(1234, dados={}) registrador.resposta.should.be.none
def test_deve_dizer_que_faz_http(self): registrador = servicos.RegistraResultado(1234, dados={}) registrador.faz_http.should.be.truthy