Coverage for adhoc-cicd-odoo-odoo / odoo / service / common.py: 33%
36 statements
« prev ^ index » next coverage.py v7.13.4, created at 2026-03-09 18:05 +0000
« prev ^ index » next coverage.py v7.13.4, created at 2026-03-09 18:05 +0000
1# -*- coding: utf-8 -*-
3import logging
5import odoo.release
6import odoo.tools
7from odoo.exceptions import AccessDenied
8from odoo.modules.registry import Registry
9from odoo.tools.translate import _
11_logger = logging.getLogger(__name__)
13RPC_VERSION_1 = {
14 'server_version': odoo.release.version,
15 'server_version_info': odoo.release.version_info,
16 'server_serie': odoo.release.serie,
17 'protocol_version': 1,
18}
20def exp_login(db, login, password):
21 return exp_authenticate(db, login, password, None)
23def exp_authenticate(db, login, password, user_agent_env):
24 if not user_agent_env:
25 user_agent_env = {}
26 with Registry(db).cursor() as cr:
27 env = odoo.api.Environment(cr, None, {})
28 env.transaction.default_env = env # force default_env
29 try:
30 credential = {'login': login, 'password': password, 'type': 'password'}
31 return env['res.users'].authenticate(credential, {**user_agent_env, 'interactive': False})['uid']
32 except AccessDenied:
33 return False
35def exp_version():
36 return RPC_VERSION_1
38def exp_about(extended=False):
39 """Return information about the OpenERP Server.
41 @param extended: if True then return version info
42 @return string if extended is False else tuple
43 """
45 info = _('See http://openerp.com')
47 if extended:
48 return info, odoo.release.version
49 return info
51def exp_set_loglevel(loglevel, logger=None):
52 # TODO Previously, the level was set on the now deprecated
53 # `odoo.netsvc.Logger` class.
54 return True
56def dispatch(method, params):
57 g = globals()
58 exp_method_name = 'exp_' + method
59 if exp_method_name in g:
60 return g[exp_method_name](*params)
61 else:
62 raise Exception("Method not found: %s" % method)