The installation of a new acquirer was a bit complicated : from settings, check the acquirer, then apply (install the module) then list view of acquirer and finally edit it in form view. This needed to be simplified. The payment acquirers are pre-filled in payment. From the kanban view an `Install` button installs and redirects to the form field.
100 lines
4.2 KiB
Python
100 lines
4.2 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
from lxml import objectify
|
|
import urlparse
|
|
|
|
from openerp.addons.payment.models.payment_acquirer import ValidationError
|
|
from openerp.addons.payment.tests.common import PaymentAcquirerCommon
|
|
from openerp.addons.payment_adyen.controllers.main import AdyenController
|
|
from openerp.tools import mute_logger
|
|
|
|
|
|
class AdyenCommon(PaymentAcquirerCommon):
|
|
|
|
def setUp(self):
|
|
super(AdyenCommon, self).setUp()
|
|
cr, uid = self.cr, self.uid
|
|
self.base_url = self.registry('ir.config_parameter').get_param(cr, uid, 'web.base.url')
|
|
|
|
# get the adyen account
|
|
model, self.adyen_id = self.registry('ir.model.data').get_object_reference(cr, uid, 'payment', 'payment_acquirer_adyen')
|
|
|
|
# some CC (always use expiration date 06 / 2016, cvc 737, cid 7373 (amex))
|
|
self.amex = (('370000000000002', '7373'))
|
|
self.dinersclub = (('36006666333344', '737'))
|
|
self.discover = (('6011601160116611', '737'), ('644564456445644', '737'))
|
|
self.jcb = (('3530111333300000', '737'))
|
|
self.mastercard = (('5555444433331111', '737'), ('5555555555554444', '737'))
|
|
self.visa = (('4111 1111 1111 1111', '737'), ('4444333322221111', '737'))
|
|
self.mcdebit = (('5500000000000004', '737'))
|
|
self.visadebit = (('4400000000000008', '737'))
|
|
self.maestro = (('6731012345678906', '737'))
|
|
self.laser = (('630495060000000000', '737'))
|
|
self.hipercard = (('6062828888666688', '737'))
|
|
self.dsmastercard = (('521234567890 1234', '737', 'user', 'password'))
|
|
self.dsvisa = (('4212345678901237', '737', 'user', 'password'))
|
|
self.mistercash = (('6703444444444449', None, 'user', 'password'))
|
|
|
|
|
|
class AdyenServer2Server(AdyenCommon):
|
|
|
|
def test_00_tx_management(self):
|
|
cr, uid, context = self.cr, self.uid, {}
|
|
|
|
|
|
class AdyenForm(AdyenCommon):
|
|
|
|
def test_10_adyen_form_render(self):
|
|
cr, uid, context = self.cr, self.uid, {}
|
|
# be sure not to do stupid things
|
|
adyen = self.payment_acquirer.browse(self.cr, self.uid, self.adyen_id, None)
|
|
self.assertEqual(adyen.environment, 'test', 'test without test environment')
|
|
|
|
# ----------------------------------------
|
|
# Test: button direct rendering
|
|
# ----------------------------------------
|
|
|
|
form_values = {
|
|
'merchantAccount': 'OpenERPCOM',
|
|
'merchantReference': 'test_ref0',
|
|
'skinCode': 'cbqYWvVL',
|
|
'paymentAmount': '1',
|
|
'currencyCode': 'EUR',
|
|
'resURL': '%s' % urlparse.urljoin(self.base_url, AdyenController._return_url),
|
|
}
|
|
|
|
# render the button
|
|
res = self.payment_acquirer.render(
|
|
cr, uid, self.adyen_id,
|
|
'test_ref0', 0.01, self.currency_euro_id,
|
|
partner_id=None,
|
|
partner_values=self.buyer_values,
|
|
context=context)
|
|
|
|
# check form result
|
|
tree = objectify.fromstring(res)
|
|
self.assertEqual(tree.get('action'), 'https://test.adyen.com/hpp/pay.shtml', 'adyen: wrong form POST url')
|
|
for form_input in tree.input:
|
|
if form_input.get('name') in ['submit', 'shipBeforeDate', 'sessionValidity', 'shopperLocale', 'merchantSig']:
|
|
continue
|
|
self.assertEqual(
|
|
form_input.get('value'),
|
|
form_values[form_input.get('name')],
|
|
'adyen: wrong value for input %s: received %s instead of %s' % (form_input.get('name'), form_input.get('value'), form_values[form_input.get('name')])
|
|
)
|
|
|
|
# @mute_logger('openerp.addons.payment_adyen.models.adyen', 'ValidationError')
|
|
# def test_20_paypal_form_management(self):
|
|
# cr, uid, context = self.cr, self.uid, {}
|
|
# # be sure not to do stupid things
|
|
# adyen = self.payment_acquirer.browse(self.cr, self.uid, self.adyen_id, None)
|
|
# self.assertEqual(adyen.env, 'test', 'test without test env')
|
|
|
|
# {'authResult': u'AUTHORISED',
|
|
# 'merchantReference': u'SO014',
|
|
# 'merchantReturnData': u'return_url=/shop/payment/validate',
|
|
# 'merchantSig': u'GaLRO8aMHFaQX3gQ5BVP/YETzeA=',
|
|
# 'paymentMethod': u'visa',
|
|
# 'pspReference': u'8813859935907337',
|
|
# 'shopperLocale': u'en_US',
|
|
# 'skinCode': u'cbqYWvVL'} |