[IMP] http: make ir.http.routing_map a standard lazy property
Is currently a function emulating a lazy property.
This commit is contained in:
@@ -20,6 +20,7 @@ import openerp.models
|
|||||||
from openerp import http
|
from openerp import http
|
||||||
from openerp.http import request
|
from openerp.http import request
|
||||||
from openerp.osv import osv, orm
|
from openerp.osv import osv, orm
|
||||||
|
from openerp.tools import lazy_property
|
||||||
|
|
||||||
_logger = logging.getLogger(__name__)
|
_logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
@@ -62,7 +63,7 @@ class ir_http(osv.AbstractModel):
|
|||||||
return {'model': ModelConverter, 'models': ModelsConverter}
|
return {'model': ModelConverter, 'models': ModelsConverter}
|
||||||
|
|
||||||
def _find_handler(self, return_rule=False):
|
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):
|
def _auth_method_user(self):
|
||||||
request.uid = request.session.uid
|
request.uid = request.session.uid
|
||||||
@@ -187,16 +188,14 @@ class ir_http(osv.AbstractModel):
|
|||||||
except openerp.models.MissingError:
|
except openerp.models.MissingError:
|
||||||
return self._handle_exception(werkzeug.exceptions.NotFound())
|
return self._handle_exception(werkzeug.exceptions.NotFound())
|
||||||
|
|
||||||
|
@lazy_property
|
||||||
def routing_map(self):
|
def routing_map(self):
|
||||||
if not hasattr(self, '_routing_map'):
|
_logger.info("Generating routing map")
|
||||||
_logger.info("Generating routing map")
|
installed = request.registry._init_modules - {'web'}
|
||||||
installed = request.registry._init_modules - {'web'}
|
if openerp.tools.config['test_enable']:
|
||||||
if openerp.tools.config['test_enable']:
|
installed.add(openerp.modules.module.current_test)
|
||||||
installed.add(openerp.modules.module.current_test)
|
mods = [''] + openerp.conf.server_wide_modules + sorted(installed)
|
||||||
mods = [''] + openerp.conf.server_wide_modules + sorted(installed)
|
return http.routing_map(mods, False, converters=self._get_converters())
|
||||||
self._routing_map = http.routing_map(mods, False, converters=self._get_converters())
|
|
||||||
|
|
||||||
return self._routing_map
|
|
||||||
|
|
||||||
def convert_exception_to(to_type, with_message=False):
|
def convert_exception_to(to_type, with_message=False):
|
||||||
""" Should only be called from an exception handler. Fetches the current
|
""" Should only be called from an exception handler. Fetches the current
|
||||||
|
|||||||
+1
-1
@@ -1591,7 +1591,7 @@ class Root(object):
|
|||||||
def get_db_router(self, db):
|
def get_db_router(self, db):
|
||||||
if not db:
|
if not db:
|
||||||
return self.nodb_routing_map
|
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):
|
def db_list(force=False, httprequest=None):
|
||||||
dbs = openerp.service.db.list_dbs(force)
|
dbs = openerp.service.db.list_dbs(force)
|
||||||
|
|||||||
@@ -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))
|
report.record_result(load_test(module_name, idref, mode))
|
||||||
# Python tests
|
# Python tests
|
||||||
ir_http = registry['ir.http']
|
ir_http = registry['ir.http']
|
||||||
if hasattr(ir_http, '_routing_map'):
|
# Force routing map to be rebuilt between each module test suite
|
||||||
# Force routing map to be rebuilt between each module test suite
|
vars(ir_http).pop('routing_map', None)
|
||||||
del(ir_http._routing_map)
|
|
||||||
report.record_result(openerp.modules.module.run_unit_tests(module_name, cr.dbname))
|
report.record_result(openerp.modules.module.run_unit_tests(module_name, cr.dbname))
|
||||||
|
|
||||||
processed_modules.append(package.name)
|
processed_modules.append(package.name)
|
||||||
|
|||||||
Reference in New Issue
Block a user