Example #1
0
 def test_deve_montar_conexao(self, obter_mock):
     obter_mock.return_value = 'conexao'
     entregador = servicos.EntregaPagamento(1234)
     entregador.conexao.should.be.equal('conexao')
     obter_mock.assert_called_with(
         formato_envio='application/x-www-form-urlencoded',
         formato_resposta='application/x-www-form-urlencoded')
Example #2
0
 def test_deve_definir_credenciais(self, credenciador_mock):
     entregador = servicos.EntregaPagamento(1234)
     credenciador_mock.return_value = 'credenciador'
     entregador.configuracao = 'configuracao'
     entregador.define_credenciais()
     entregador.conexao.credenciador.should.be.equal('credenciador')
     credenciador_mock.assert_called_with(configuracao='configuracao')
Example #3
0
 def test_deve_processar_dados_de_pagamento(self):
     entregador = servicos.EntregaPagamento(1234)
     entregador._processa_resposta = mock.MagicMock()
     entregador._processa_resposta.return_value = 'resposta-processada'
     entregador.processa_dados_pagamento()
     entregador._processa_resposta.assert_called_with()
     entregador.resultado.should.be.equal('resposta-processada')
Example #4
0
 def test_deve_usar_post_ao_enviar_pagamento(self):
     entregador = servicos.EntregaPagamento(1234)
     entregador.malote = mock.MagicMock()
     entregador.malote.to_dict.return_value = 'malote-como-dicionario'
     entregador.conexao = mock.MagicMock()
     entregador.envia_pagamento()
     entregador.conexao.post.assert_called_with(entregador.url,
                                                'malote-como-dicionario')
Example #5
0
 def test_deve_enviar_pagamento(self):
     entregador = servicos.EntregaPagamento(1234)
     entregador.malote = mock.MagicMock()
     entregador.malote.to_dict.return_value = 'malote-como-dicionario'
     entregador.conexao = mock.MagicMock()
     entregador.conexao.post.return_value = 'resposta'
     entregador.envia_pagamento()
     entregador.dados_enviados.should.be.equal('malote-como-dicionario')
     entregador.resposta.should.be.equal('resposta')
Example #6
0
 def test_deve_disparar_erro_se_resposta_vier_com_status_nao_conhecido(
         self):
     entregador = servicos.EntregaPagamento(1234)
     entregador.pedido = mock.MagicMock(numero=123)
     entregador.malote = mock.MagicMock()
     entregador.malote.to_dict.return_value = 'malote'
     entregador.resposta = mock.MagicMock(conteudo={'erro': 'zas'},
                                          status_code=666,
                                          sucesso=False,
                                          erro_servidor=False,
                                          timeout=False,
                                          nao_autenticado=False,
                                          nao_autorizado=False)
     entregador.processa_dados_pagamento.when.called_with().should.throw(
         entregador.EnvioNaoRealizado)
Example #7
0
 def test_deve_processar_resposta_timeout(self):
     entregador = servicos.EntregaPagamento(1234)
     entregador.resposta = mock.MagicMock(conteudo={},
                                          status_code=408,
                                          sucesso=False,
                                          erro_servidor=False,
                                          timeout=True,
                                          nao_autenticado=False,
                                          nao_autorizado=False)
     entregador.processa_dados_pagamento()
     entregador.resultado.should.be.equal({
         'mensagem': u'O servidor do PayPal não respondeu em tempo útil.',
         'status_code': 408,
         'pago': False,
         'fatal': False
     })
Example #8
0
 def test_deve_processar_resposta_nao_autorizado(self):
     entregador = servicos.EntregaPagamento(1234)
     entregador.resposta = mock.MagicMock(conteudo={},
                                          status_code=400,
                                          sucesso=False,
                                          erro_servidor=False,
                                          timeout=False,
                                          nao_autenticado=False,
                                          nao_autorizado=True)
     entregador.processa_dados_pagamento()
     entregador.resultado.should.be.equal({
         'mensagem':
         u'Autenticação da loja com o PayPal Falhou. Contate o SAC da loja.',
         'status_code': 400,
         'pago': False,
         'fatal': False
     })
Example #9
0
 def test_deve_processar_resposta_erro(self):
     entregador = servicos.EntregaPagamento(1234)
     entregador.resposta = mock.MagicMock(conteudo={},
                                          status_code=500,
                                          sucesso=False,
                                          erro_servidor=True,
                                          timeout=False,
                                          nao_autenticado=False,
                                          nao_autorizado=False)
     entregador.processa_dados_pagamento()
     entregador.resultado.should.be.equal({
         'mensagem':
         u'O servidor do PayPal está indisponível nesse momento.',
         'status_code': 500,
         'pago': False,
         'fatal': False
     })
Example #10
0
 def test_deve_processar_resposta_sucesso(self):
     entregador = servicos.EntregaPagamento(1234)
     entregador.resposta = mock.MagicMock(conteudo={
         'ack': 'success',
         'token': 'TOKEN'
     },
                                          status_code=200,
                                          sucesso=True,
                                          erro_servidor=False,
                                          timeout=False,
                                          nao_autenticado=False,
                                          nao_autorizado=False)
     entregador.processa_dados_pagamento()
     entregador.resultado.should.be.equal({
         'url':
         'https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=TOKEN',
         'pago': False,
         'fatal': False
     })
Example #11
0
 def test_deve_processar_resposta_se_sucesso_com_ack_falha_erro_qq(self):
     entregador = servicos.EntregaPagamento(1234)
     entregador.resposta = mock.MagicMock(conteudo={
         'ack': 'failure',
         'l_shortmessage0': 'outra-coisa',
         'l_longmessage0': 'message-zas'
     },
                                          status_code=401,
                                          sucesso=True,
                                          erro_servidor=False,
                                          timeout=False,
                                          nao_autenticado=False,
                                          nao_autorizado=False)
     entregador.processa_dados_pagamento()
     entregador.resultado.should.be.equal({
         'mensagem':
         u'O PayPal retornou a seguinte mensagem de erro: message-zas',
         'status_code': 401,
         'pago': False,
         'fatal': False
     })
Example #12
0
 def test_deve_processar_resposta_se_sucesso_com_ack_falha_de_autenticacao(
         self):
     entregador = servicos.EntregaPagamento(1234)
     entregador.resposta = mock.MagicMock(conteudo={
         'ack':
         'failure',
         'l_shortmessage0':
         'authentication/authorization failed'
     },
                                          status_code=401,
                                          sucesso=True,
                                          erro_servidor=False,
                                          timeout=False,
                                          nao_autenticado=False,
                                          nao_autorizado=False)
     entregador.processa_dados_pagamento()
     entregador.resultado.should.be.equal({
         'mensagem':
         u'Autenticação da loja com o PayPal Falhou. Contate o SAC da loja.',
         'status_code': 401,
         'pago': False,
         'fatal': True
     })
Example #13
0
 def test_deve_definir_url_sem_sandbox(self):
     entregador = servicos.EntregaPagamento(1234)
     entregador.url.should.be.equal('https://api-3t.paypal.com/nvp')
Example #14
0
 def test_deve_definir_resposta(self):
     entregador = servicos.EntregaPagamento(1234)
     entregador.resposta.should.be.none
Example #15
0
 def test_deve_dizer_que_faz_http(self):
     entregador = servicos.EntregaPagamento(1234)
     entregador.faz_http.should.be.truthy
Example #16
0
 def test_deve_dizer_que_tem_malote(self):
     entregador = servicos.EntregaPagamento(1234)
     entregador.tem_malote.should.be.truthy