From 17a182fb3ee652a8a52654c5707c0ed265404630 Mon Sep 17 00:00:00 2001 From: Romain Derie <rde@odoo.com> Date: Fri, 18 Nov 2022 11:14:08 +0000 Subject: [PATCH] [FIX] website: repair (again) the nightly website standalone test Commit [1] actually "repair" the test theme installation that was actually not calling `_post_copy()` for the website/themes created through the `_post_init` hook of the `test_themes` module. By doing so, the Nano theme now correctly activated the `footer_language_selector` view, meaning that the tour would fail as this Nano view would mess up with the tour (that Nano view was returned on top of the Theme custo view). Those website standalone tests should really be part of the regular testing suite and not in the nightly build only: 1. This is getting really annoying to fix it again and again, we wouldn't have to do that if it was in the regular testing base as it could not be broken. This is a waste of time for no reason, as we need to investigate, understand and find a fix. 2. For now it only broke due to no real bug, most of the time it is because the test need to be adapted to a theme change or something, but one day someone will be able to break the website core mechanisms (COW, theme install etc) and this will be problematic. Note that if this was to happen, the runbot team will be handling the issue and the fix with the people that broke it, as it was promised when we discussed about moving those tests in the regular testing suite. It was the conscensus for us to accept to leave those tests in the nightly only (we didn't really had a choice tho). [1]: https://github.com/odoo/design-themes/commit/fea847977d8bd4b0c0ddfc7685e3d3dc0933759c closes odoo/odoo#106026 Signed-off-by: Romain Derie (rde) <rde@odoo.com> --- addons/website/tests/test_views_inherit_module_update.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/addons/website/tests/test_views_inherit_module_update.py b/addons/website/tests/test_views_inherit_module_update.py index c76ed6dbdeac..526cb7b7d4cb 100644 --- a/addons/website/tests/test_views_inherit_module_update.py +++ b/addons/website/tests/test_views_inherit_module_update.py @@ -28,6 +28,9 @@ def test_01_cow_views_inherit_on_module_update(env): View.with_context(_force_unlink=True, active_test=False).search([('website_id', '=', 1)]).unlink() child_view = env.ref('portal.footer_language_selector') parent_view = env.ref('portal.portal_back_in_edit_mode') + # Remove any possibly existing COW view (another theme etc) + parent_view.with_context(_force_unlink=True, active_test=False)._get_specific_views().unlink() + child_view.with_context(_force_unlink=True, active_test=False)._get_specific_views().unlink() # Change `inherit_id` so the module update will set it back to the XML value child_view.write({'inherit_id': parent_view.id, 'arch': child_view.arch_db.replace('o_footer_copyright_name', 'text-center')}) # Trigger COW on view @@ -35,6 +38,7 @@ def test_01_cow_views_inherit_on_module_update(env): child_cow_view = child_view._get_specific_views() # 2. Ensure setup is as expected + assert len(child_cow_view.inherit_id) == 1, "Should only be the XML view and its COW counterpart." assert child_cow_view.inherit_id == parent_view, "Ensure test is setup as expected." # 3. Upgrade the module -- GitLab