[CLEAN] payment_acquirer_adyen: cleaned tests: removed code pasted from paypal, updated tests. Tests should be added, but will be done in a few days.
bzr revid: tde@openerp.com-20131202152958-em5tq1x20y2rlo9q
This commit is contained in:
parent
19ea5b9674
commit
f47c5d367f
|
@ -25,7 +25,7 @@ class AdyenCommon(PaymentAcquirerCommon):
|
|||
'name': 'adyen',
|
||||
'env': 'test',
|
||||
'view_template_id': self.paypal_view_id,
|
||||
'adyen_merchant_account': 'OpenERP',
|
||||
'adyen_merchant_account': 'OpenERPCOM',
|
||||
'adyen_skin_code': 'cbqYWvVL',
|
||||
'adyen_skin_hmac_key': 'cbqYWvVL',
|
||||
})
|
||||
|
@ -52,30 +52,6 @@ class AdyenServer2Server(AdyenCommon):
|
|||
def test_00_tx_management(self):
|
||||
cr, uid, context = self.cr, self.uid, {}
|
||||
|
||||
# res = self.payment_acquirer._paypal_s2s_get_access_token(cr, uid, [self.paypal_id], context=context)
|
||||
# self.assertTrue(res[self.paypal_id] is not False, 'paypal: did not generate access token')
|
||||
|
||||
# tx_id = self.payment_transaction.s2s_create(
|
||||
# cr, uid, {
|
||||
# 'amount': 0.01,
|
||||
# 'acquirer_id': self.paypal_id,
|
||||
# 'currency_id': self.currency_euro_id,
|
||||
# 'reference': 'test_reference',
|
||||
# 'partner_id': self.buyer_id,
|
||||
# }, {
|
||||
# 'number': self.visa[0][0],
|
||||
# 'cvc': self.visa[0][1],
|
||||
# 'brand': 'visa',
|
||||
# 'expiry_mm': 9,
|
||||
# 'expiry_yy': 2015,
|
||||
# }, context=context
|
||||
# )
|
||||
|
||||
# tx = self.payment_transaction.browse(cr, uid, tx_id, context=context)
|
||||
# self.assertTrue(tx.paypal_txn_id is not False, 'paypal: txn_id should have been set after s2s request')
|
||||
|
||||
# self.payment_transaction.write(cr, uid, tx_id, {'paypal_txn_id': False}, context=context)
|
||||
|
||||
|
||||
class AdyenForm(AdyenCommon):
|
||||
|
||||
|
@ -87,20 +63,12 @@ class AdyenForm(AdyenCommon):
|
|||
# ----------------------------------------
|
||||
|
||||
form_values = {
|
||||
'cmd': '_xclick',
|
||||
'business': 'tde+paypal-facilitator@openerp.com',
|
||||
'item_name': 'test_ref0',
|
||||
'item_number': 'test_ref0',
|
||||
'first_name': 'Buyer',
|
||||
'last_name': 'Norbert',
|
||||
'amount': '0.01',
|
||||
'currency_code': 'EUR',
|
||||
'address1': 'Huge Street 2/543',
|
||||
'city': 'Sin City',
|
||||
'zip': '1000',
|
||||
'country': 'Belgium',
|
||||
'email': 'norbert.buyer@example.com',
|
||||
'return': '%s' % urlparse.urljoin(self.base_url, AdyenController._return_url),
|
||||
'merchantAccount': 'OpenERPCOM',
|
||||
'merchantReference': 'test_ref0',
|
||||
'skinCode': 'cbqYWvVL',
|
||||
'paymentAmount': '1',
|
||||
'currencyCode': 'EUR',
|
||||
'resURL': '%s' % urlparse.urljoin(self.base_url, AdyenController._return_url),
|
||||
}
|
||||
|
||||
# render the button
|
||||
|
@ -110,106 +78,23 @@ class AdyenForm(AdyenCommon):
|
|||
partner_id=None,
|
||||
partner_values=self.buyer_values,
|
||||
context=context)
|
||||
print res
|
||||
|
||||
# check form result
|
||||
tree = objectify.fromstring(res)
|
||||
self.assertEqual(tree.get('action'), 'https://www.sandbox.paypal.com/cgi-bin/webscr', 'paypal: wrong form POST url')
|
||||
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']:
|
||||
if form_input.get('name') in ['submit', 'shipBeforeDate', 'sessionValidity', 'shopperLocale', 'merchantSig']:
|
||||
continue
|
||||
self.assertEqual(
|
||||
form_input.get('value'),
|
||||
form_values[form_input.get('name')],
|
||||
'paypal: wrong value for form: received %s instead of %s' % (form_input.get('value'), form_values[form_input.get('name')])
|
||||
'adyen: wrong value for form: received %s instead of %s' % (form_input.get('value'), form_values[form_input.get('name')])
|
||||
)
|
||||
|
||||
@mute_logger('openerp.addons.payment_acquirer_paypal.models.paypal', 'ValidationError')
|
||||
def test_20_paypal_form_management(self):
|
||||
cr, uid, context = self.cr, self.uid, {}
|
||||
|
||||
# typical data posted by paypal after client has successfully paid
|
||||
paypal_post_data = {
|
||||
'protection_eligibility': u'Ineligible',
|
||||
'last_name': u'Poilu',
|
||||
'txn_id': u'08D73520KX778924N',
|
||||
'receiver_email': u'tde+paypal-facilitator@openerp.com',
|
||||
'payment_status': u'Pending',
|
||||
'payment_gross': u'',
|
||||
'tax': u'0.00',
|
||||
'residence_country': u'FR',
|
||||
'address_state': u'Alsace',
|
||||
'payer_status': u'verified',
|
||||
'txn_type': u'web_accept',
|
||||
'address_street': u'Av. de la Pelouse, 87648672 Mayet',
|
||||
'handling_amount': u'0.00',
|
||||
'payment_date': u'03:21:19 Nov 18, 2013 PST',
|
||||
'first_name': u'Norbert',
|
||||
'item_name': u'test_ref_2',
|
||||
'address_country': u'France',
|
||||
'charset': u'windows-1252',
|
||||
'custom': u'',
|
||||
'notify_version': u'3.7',
|
||||
'address_name': u'Norbert Poilu',
|
||||
'pending_reason': u'multi_currency',
|
||||
'item_number': u'test_ref_2',
|
||||
'receiver_id': u'DEG7Z7MYGT6QA',
|
||||
'transaction_subject': u'',
|
||||
'business': u'tde+paypal-facilitator@openerp.com',
|
||||
'test_ipn': u'1',
|
||||
'payer_id': u'VTDKRZQSAHYPS',
|
||||
'verify_sign': u'An5ns1Kso7MWUdW4ErQKJJJ4qi4-AVoiUf-3478q3vrSmqh08IouiYpM',
|
||||
'address_zip': u'75002',
|
||||
'address_country_code': u'FR',
|
||||
'address_city': u'Paris',
|
||||
'address_status': u'unconfirmed',
|
||||
'mc_currency': u'EUR',
|
||||
'shipping': u'0.00',
|
||||
'payer_email': u'tde+buyer@openerp.com',
|
||||
'payment_type': u'instant',
|
||||
'mc_gross': u'1.95',
|
||||
'ipn_track_id': u'866df2ccd444b',
|
||||
'quantity': u'1'
|
||||
}
|
||||
|
||||
# should raise error about unknown tx
|
||||
with self.assertRaises(ValidationError):
|
||||
self.payment_transaction.form_feedback(cr, uid, paypal_post_data, 'paypal', context=context)
|
||||
|
||||
# create tx
|
||||
tx_id = self.payment_transaction.create(
|
||||
cr, uid, {
|
||||
'amount': 1.95,
|
||||
'acquirer_id': self.paypal_id,
|
||||
'currency_id': self.currency_euro_id,
|
||||
'reference': 'test_ref_2',
|
||||
'partner_name': 'Norbert Buyer',
|
||||
}, context=context
|
||||
)
|
||||
# validate it
|
||||
self.payment_transaction.form_feedback(cr, uid, paypal_post_data, 'paypal', context=context)
|
||||
# check
|
||||
tx = self.payment_transaction.browse(cr, uid, tx_id, context=context)
|
||||
self.assertEqual(tx.state, 'pending', 'paypal: wrong state after receiving a valid pending notification')
|
||||
self.assertEqual(tx.state_message, 'multi_currency', 'paypal: wrong state message after receiving a valid pending notification')
|
||||
self.assertEqual(tx.paypal_txn_id, '08D73520KX778924N', 'paypal: wrong txn_id after receiving a valid pending notification')
|
||||
self.assertFalse(tx.date_validate, 'paypal: validation date should not be updated whenr receiving pending notification')
|
||||
|
||||
# update tx
|
||||
self.payment_transaction.write(cr, uid, [tx_id], {
|
||||
'state': 'draft',
|
||||
'paypal_txn_id': False,
|
||||
}, context=context)
|
||||
# update notification from paypal
|
||||
paypal_post_data['payment_status'] = 'Completed'
|
||||
# validate it
|
||||
self.payment_transaction.form_feedback(cr, uid, paypal_post_data, 'paypal', context=context)
|
||||
# check
|
||||
tx = self.payment_transaction.browse(cr, uid, tx_id, context=context)
|
||||
self.assertEqual(tx.state, 'done', 'paypal: wrong state after receiving a valid pending notification')
|
||||
self.assertEqual(tx.paypal_txn_id, '08D73520KX778924N', 'paypal: wrong txn_id after receiving a valid pending notification')
|
||||
self.assertEqual(tx.date_validate, '2013-11-18 03:21:19', 'paypal: wrong validation date')
|
||||
|
||||
# {'authResult': u'AUTHORISED',
|
||||
# 'merchantReference': u'SO014',
|
||||
# 'merchantReturnData': u'return_url=/shop/payment/validate',
|
||||
|
|
Loading…
Reference in New Issue