[FIX] payment_*: tests when running with a non-default port
For payment_buckaroo and payment_sips (at least) running with a non-standard port is an issue to the `test_redirect_form_value` tests: while the form and test will use respectively the base_url and the configuration port, both check a response signature which is predicated upon a base url of `http://127.0.0.1:8069`. This means the test does not pass when run with a different port, and may not pass if the database was installed with a different port either (because this may have caused the `web.base_url` to be set to the installation port). The other payment modules don't seem to have such signature verification and thus apparently don't mind running with non-default port. Update in 15.2: `test_webhook_notification_confirms_transaction` also broke but differently, because the payment utils would fetch (and use) the `web.base.url` they get confused if a db is installed using one port then the tests are run using an other (or something along those lines), despite `HttpCase` trying to set the `web.base.url` (could be an ordering thing). Anyway a working solution seems to be to *remove* the bespoke code from `PaymentTestUtils` and fix `HttpCase.base_url()` so it uses the right port (apparently that'd never been fixed). This does require adapting the patch being forward-ported as `base_url` is now a callable, not an attribute. Also re-remove the attractive nuisance of the odoo.tests.common.PORT constant which does not work: it is evaluated before the configuration has been loaded and is thus always set to the default (8069). closes odoo/odoo#86068 X-original-commit: c28c99f7399da91e1a6176d6f97d4fc947013cae Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
This commit is contained in:
@@ -45,6 +45,9 @@ class SipsTest(SipsCommon, PaymentHttpCommon):
|
||||
"Payulatam: transaction reference wasn't correctly singularized.")
|
||||
|
||||
def test_redirect_form_values(self):
|
||||
self.patch(self, 'base_url', lambda: 'http://127.0.0.1:8069')
|
||||
self.patch(type(self.env['base']), 'get_base_url', lambda _: 'http://127.0.0.1:8069')
|
||||
|
||||
tx = self.create_transaction(flow="redirect")
|
||||
|
||||
with mute_logger('odoo.addons.payment.models.payment_transaction'):
|
||||
|
||||
Reference in New Issue
Block a user