def test_not_timeout(self, parse, logger, ConfirmationPayload): data = {'TBK_PARAM': mock.Mock()} timeout = 20 confirmation = Confirmation(self.commerce, self.request_ip, data, timeout) confirmation.init_time = confirmation.init_time + datetime.timedelta( seconds=timeout) self.assertFalse(confirmation.is_timeout())
def test_not_timeout(self, parse, logger, ConfirmationPayload): data = { 'TBK_PARAM': mock.Mock() } timeout = 20 confirmation = Confirmation(self.commerce, self.request_ip, data, timeout) confirmation.init_time = confirmation.init_time + datetime.timedelta(seconds=timeout) self.assertFalse(confirmation.is_timeout())
def test_is_success(self, parse, logger, ConfirmationPayload): parse.return_value = { 'TBK_RESPUESTA': '0', } data = {'TBK_PARAM': mock.Mock()} payload = ConfirmationPayload.return_value payload.response = payload.SUCCESS_RESPONSE_CODE confirmation = Confirmation(self.commerce, self.request_ip, data) self.assertTrue(confirmation.is_success(check_timeout=False))
def test_is_success_respuesta_not_0(self, parse, logger, ConfirmationPayload): parse.return_value = { 'TBK_RESPUESTA': '0', } data = {'TBK_PARAM': mock.Mock()} payload = ConfirmationPayload.return_value for i in range(1, 10): payload.response = -i confirmation = Confirmation(self.commerce, self.request_ip, data) self.assertFalse(confirmation.is_success(check_timeout=False))
def test_is_success_respuesta_not_0(self, parse, logger, ConfirmationPayload): parse.return_value = { 'TBK_RESPUESTA': '0', } data = { 'TBK_PARAM': mock.Mock() } payload = ConfirmationPayload.return_value for i in range(1, 10): payload.response = -i confirmation = Confirmation(self.commerce, self.request_ip, data) self.assertFalse(confirmation.is_success(check_timeout=False))
def test_is_success(self, parse, logger, ConfirmationPayload): parse.return_value = { 'TBK_RESPUESTA': '0', } data = { 'TBK_PARAM': mock.Mock() } payload = ConfirmationPayload.return_value payload.response = payload.SUCCESS_RESPONSE_CODE confirmation = Confirmation(self.commerce, self.request_ip, data) self.assertTrue(confirmation.is_success(check_timeout=False))
def test_amount(self, parse, logger, ConfirmationPayload): data = {'TBK_PARAM': mock.Mock()} payload = ConfirmationPayload.return_value confirmation = Confirmation(self.commerce, self.request_ip, data) self.assertEqual(payload.amount, confirmation.amount)
def test_init(self, parse, logger, ConfirmationPayload): data = {'TBK_PARAM': mock.Mock()} confirmation = Confirmation(self.commerce, self.request_ip, data) self.assertEqual(self.commerce, confirmation.commerce) self.assertEqual(self.request_ip, confirmation.request_ip) self.assertEqual(CONFIRMATION_TIMEOUT, confirmation.timeout) parse.assert_called_once_with(data['TBK_PARAM']) ConfirmationPayload.assert_called_once_with(parse.return_value) self.assertEqual(ConfirmationPayload.return_value, confirmation.payload)
def confirmation(): global commerce confirmation = Confirmation( commerce=commerce, request_ip= request.remote_addr, data=request.form ) bill = Bill.objects.get(orden = confirmation.order_id) if confirmation.is_success() and validation(confirmation, bill): bill.state = State.objects.get(name = "Aprobada") bill.message = confirmation.payload.message bill.auth_code = confirmation.payload.authorization_code bill.trx_id = confirmation.payload.transaction_id bill.trx_date = confirmation.payload.paid_at bill.last_digits = confirmation.payload.credit_card_last_digits bill.tipo_cuota = confirmation.payload.payment_type bill.num_cuota = confirmation.payload.installments bill.save() return commerce.acknowledge bill.state = State.objects.get(name = "Rechazada") bill.save() return commerce.reject
def test_parse(self, logger, ConfirmationPayload): with open( os.path.join(os.path.dirname(__file__), 'fixtures', 'confirmation.txt')) as f: confirmation_data = f.read() data = {'TBK_PARAM': mock.Mock()} self.commerce.webpay_decrypt.return_value = (confirmation_data, "signature") confirmation = Confirmation(self.commerce, self.request_ip, data) params = CONFIRMATION_DATA.copy() params['TBK_MAC'] = "signature" self.commerce.webpay_decrypt.assert_called_once_with(data['TBK_PARAM']) ConfirmationPayload.assert_called_once_with(params) self.assertEqual(ConfirmationPayload.return_value, confirmation.payload)