It may happen than the routing map is cleared while rendering a qweb
view. For example, if an asset bundle is regenerated, the previous one
is unlinked, which causes a cache clearing.
Previously-generated EndPoint objects aren't found any more in the new
routing map, so `request.endpoint` cannot be used any more after a cache
clearing.
This commit adds hash and comparison magic methods on http.EndPoint so
that EndPoint objects created by a previous routing map generation can
still be used after a cache clearing.
Two tests were added: one to test the comparison and hash methods, and
the other to test them in a real-case rendering.
Commit 80a04f7ebed fixed this bug too, but introduced another issue
which caused many OPW, so it was quickly reverted by deb23450f18 along
with its performance improvement 33167b3928c. This commit replaces
80a04f7ebed with another way to fix the issue.
A third test has been added in order to avoid reintroducing this other
issue.
By the way, this commit also removes the EndPoint.arguments attribute,
as commit 17f1992698 removed all usages of this attribute in Odoo 9.0,
but left this initialization here.
OPW-2834546
OPW-2834549
OPW-2834625
X-original-commit: bdc45422f5c715782b147eecda2403386ba7eb4a
Part-of: odoo/odoo#91034
30 lines
956 B
Python
30 lines
956 B
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
from . import test_attachment
|
|
from . import test_auth_signup_uninvited
|
|
from . import test_automatic_editor
|
|
from . import test_base_url
|
|
from . import test_configurator
|
|
from . import test_controllers
|
|
from . import test_converter
|
|
from . import test_crawl
|
|
from . import test_disable_unused_snippets_assets
|
|
from . import test_fuzzy
|
|
from . import test_get_current_website
|
|
from . import test_http_endpoint
|
|
from . import test_lang_url
|
|
from . import test_menu
|
|
from . import test_page
|
|
from . import test_performance
|
|
from . import test_qweb
|
|
from . import test_res_users
|
|
from . import test_snippets
|
|
from . import test_theme
|
|
from . import test_ui
|
|
from . import test_views
|
|
from . import test_views_inherit_module_update
|
|
from . import test_website_favicon
|
|
from . import test_website_form_editor
|
|
from . import test_website_reset_password
|
|
from . import test_website_visitor
|