From f47c5d367f73f5791b838e46dc169f41706d915d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Mon, 2 Dec 2013 16:29:58 +0100 Subject: [PATCH] [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 --- .../tests/test_adyen.py | 135 ++---------------- 1 file changed, 10 insertions(+), 125 deletions(-) diff --git a/addons/payment_acquirer_adyen/tests/test_adyen.py b/addons/payment_acquirer_adyen/tests/test_adyen.py index 0b190bef431..4fe53b6f2ca 100644 --- a/addons/payment_acquirer_adyen/tests/test_adyen.py +++ b/addons/payment_acquirer_adyen/tests/test_adyen.py @@ -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',