[FIX] website_sale: prevent race condition on tour
As this race condition seems not possible to be reproduced in local, all this is an assumption based on the logs. After the checkout, the user is redirected to `/shop/confirmation` where there is RPCs fired every seconds to fetch the payment status (`/shop/payment/get_status`). As the test was considered as finished on that page, sometimes the RPC would still be processed in python while the tour was considered done and killed, thus also the cookies, session & co. From that point, the python would crash when accessing the session. In the logs, the python crash in the RPC call occurs after the test is done. closes odoo/odoo#44235 X-original-commit: 082c660071283c0475e7ce26954803701cd3d659 Signed-off-by: Romain Derie <rdeodoo@users.noreply.github.com>
This commit is contained in:
@@ -76,8 +76,18 @@ tour.register('shop_buy_product', {
|
||||
{
|
||||
content: "finish",
|
||||
trigger: '.oe_website_sale:contains("Please make a payment to:")',
|
||||
// Leave /shop/confirmation to prevent RPC loop to /shop/payment/get_status.
|
||||
// The RPC could be handled in python while the tour is killed (and the session), leading to crashes
|
||||
run: function () {
|
||||
window.location.href = '/aboutus'; // Redirect in JS to avoid the RPC loop (20x1sec)
|
||||
},
|
||||
timeout: 30000,
|
||||
}
|
||||
},
|
||||
{
|
||||
content: "wait page loaded",
|
||||
trigger: 'h3:contains("Great products for great people")',
|
||||
run: function () {}, // it's a check
|
||||
},
|
||||
]
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user