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

1# -*- coding: utf-8 -*- 

2 

3import logging 

4 

5import odoo.release 

6import odoo.tools 

7from odoo.exceptions import AccessDenied 

8from odoo.modules.registry import Registry 

9from odoo.tools.translate import _ 

10 

11_logger = logging.getLogger(__name__) 

12 

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} 

19 

20def exp_login(db, login, password): 

21 return exp_authenticate(db, login, password, None) 

22 

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 

34 

35def exp_version(): 

36 return RPC_VERSION_1 

37 

38def exp_about(extended=False): 

39 """Return information about the OpenERP Server. 

40 

41 @param extended: if True then return version info 

42 @return string if extended is False else tuple 

43 """ 

44 

45 info = _('See http://openerp.com') 

46 

47 if extended: 

48 return info, odoo.release.version 

49 return info 

50 

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 

55 

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)