diff --git a/endpoint_route_handler/models/ir_http.py b/endpoint_route_handler/models/ir_http.py index e7b83c72..d6c7a5a3 100644 --- a/endpoint_route_handler/models/ir_http.py +++ b/endpoint_route_handler/models/ir_http.py @@ -17,9 +17,8 @@ class IrHttp(models.AbstractModel): _inherit = "ir.http" - @classmethod - def _endpoint_route_registry(cls, env): - return EndpointRegistry.registry_for(env.cr) + def _endpoint_route_registry(self): + return EndpointRegistry.registry_for(self.env.cr) def _generate_routing_rules(self, modules, converters): # Override to inject custom endpoint rules. @@ -28,10 +27,9 @@ def _generate_routing_rules(self, modules, converters): self._endpoint_routing_rules(), ) - @classmethod - def _endpoint_routing_rules(cls): + def _endpoint_routing_rules(self): """Yield custom endpoint rules""" - e_registry = cls._endpoint_route_registry(http.request.env) + e_registry = self._endpoint_route_registry() for endpoint_rule in e_registry.get_rules(): _logger.debug("LOADING %s", endpoint_rule) endpoint = endpoint_rule.endpoint @@ -43,14 +41,11 @@ def routing_map(self, key=None): res = super().routing_map(key=key) return res - @classmethod - def _endpoint_route_last_version(cls): - res = cls._get_routing_map_last_version(http.request.env) - return res + def _endpoint_route_last_version(self): + return self._get_routing_map_last_version() - @classmethod - def _get_routing_map_last_version(cls, env): - return cls._endpoint_route_registry(env).last_version() + def _get_routing_map_last_version(self): + return self._endpoint_route_registry().last_version() @classmethod def _auth_method_user_endpoint(cls): diff --git a/endpoint_route_handler/readme/CONTRIBUTORS.md b/endpoint_route_handler/readme/CONTRIBUTORS.md index 970400e8..db4174db 100644 --- a/endpoint_route_handler/readme/CONTRIBUTORS.md +++ b/endpoint_route_handler/readme/CONTRIBUTORS.md @@ -1,2 +1,3 @@ - Simone Orsi \<\> - Nguyen Minh Chien \<\> +- Omar Assouma \<\> diff --git a/endpoint_route_handler/tests/test_endpoint.py b/endpoint_route_handler/tests/test_endpoint.py index 14901918..cebcae17 100644 --- a/endpoint_route_handler/tests/test_endpoint.py +++ b/endpoint_route_handler/tests/test_endpoint.py @@ -42,6 +42,14 @@ def tearDown(self): EndpointRegistry.wipe_registry_for(self.env.cr) super().tearDown() + def test_routing_map_no_request(self): + # Crons, `odoo shell` and core tests build the routing map with no + # request bound. website's TestWebsiteTechnicalPage does, through + # website.technical.page.get_static_routes(). No mocked request here + # on purpose. + self.env.registry.clear_cache("routing") + self.assertTrue(self.env["ir.http"].routing_map()) + def test_as_tool_base_data(self): new_route = make_new_route(self.env) self.assertEqual(new_route.route, "/my/test/route")