[IMP] http: make ir.http.routing_map a standard lazy property

Is currently a function emulating a lazy property.
This commit is contained in:
Xavier Morel
2015-10-08 15:59:02 +02:00
parent 43edebc328
commit ca7eeb0ed0
3 changed files with 13 additions and 14 deletions
+9 -10
View File
@@ -20,6 +20,7 @@ import openerp.models
from openerp import http
from openerp.http import request
from openerp.osv import osv, orm
from openerp.tools import lazy_property
_logger = logging.getLogger(__name__)
@@ -62,7 +63,7 @@ class ir_http(osv.AbstractModel):
return {'model': ModelConverter, 'models': ModelsConverter}
def _find_handler(self, return_rule=False):
return self.routing_map().bind_to_environ(request.httprequest.environ).match(return_rule=return_rule)
return self.routing_map.bind_to_environ(request.httprequest.environ).match(return_rule=return_rule)
def _auth_method_user(self):
request.uid = request.session.uid
@@ -187,16 +188,14 @@ class ir_http(osv.AbstractModel):
except openerp.models.MissingError:
return self._handle_exception(werkzeug.exceptions.NotFound())
@lazy_property
def routing_map(self):
if not hasattr(self, '_routing_map'):
_logger.info("Generating routing map")
installed = request.registry._init_modules - {'web'}
if openerp.tools.config['test_enable']:
installed.add(openerp.modules.module.current_test)
mods = [''] + openerp.conf.server_wide_modules + sorted(installed)
self._routing_map = http.routing_map(mods, False, converters=self._get_converters())
return self._routing_map
_logger.info("Generating routing map")
installed = request.registry._init_modules - {'web'}
if openerp.tools.config['test_enable']:
installed.add(openerp.modules.module.current_test)
mods = [''] + openerp.conf.server_wide_modules + sorted(installed)
return http.routing_map(mods, False, converters=self._get_converters())
def convert_exception_to(to_type, with_message=False):
""" Should only be called from an exception handler. Fetches the current
+1 -1
View File
@@ -1591,7 +1591,7 @@ class Root(object):
def get_db_router(self, db):
if not db:
return self.nodb_routing_map
return request.registry['ir.http'].routing_map()
return request.registry['ir.http'].routing_map
def db_list(force=False, httprequest=None):
dbs = openerp.service.db.list_dbs(force)
+3 -3
View File
@@ -182,9 +182,9 @@ def load_module_graph(cr, graph, status=None, perform_checks=True, skip_modules=
report.record_result(load_test(module_name, idref, mode))
# Python tests
ir_http = registry['ir.http']
if hasattr(ir_http, '_routing_map'):
# Force routing map to be rebuilt between each module test suite
del(ir_http._routing_map)
# Force routing map to be rebuilt between each module test suite
vars(ir_http).pop('routing_map', None)
report.record_result(openerp.modules.module.run_unit_tests(module_name, cr.dbname))
processed_modules.append(package.name)