You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

87 lines
2.8 KiB

# -*- coding: utf-8 -*-
# Copyright 2017 LasLabs Inc.
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
from odoo.exceptions import AccessError
from .common import Common, MAX_DB_USER_PARAM
class TestIrConfigParameter(Common):
def _get_param(self):
return self.env['ir.config_parameter'].search([
('key', '=', MAX_DB_USER_PARAM),
])
def test_can_set(self):
"""
It should test that users in the Threshold Manager group can
update the parameter
"""
mdl = self.env['ir.config_parameter']
u = self._create_test_user()
self._add_user_to_group(u)
exp = '20'
mdl.sudo(u.id).set_param(MAX_DB_USER_PARAM, exp)
self.assertEquals(mdl.get_param(MAX_DB_USER_PARAM), exp)
def test_cannot_set(self):
"""
It should test that users NOT in the Threshold Manager group
cannot alter the parameter
"""
u = self._create_test_user()
with self.assertRaises(AccessError):
self.env['ir.config_parameter'].sudo(u.id).set_param(
MAX_DB_USER_PARAM, 20
)
def test_can_unlink(self):
"""
It should test that users in the Threshold Manager group can
unlink the Threshold Param
"""
u = self._create_test_user()
self._add_user_to_group(u)
param = self._get_param()
self.assertTrue(param.sudo(u.id).unlink())
def test_cannot_unlink(self):
"""
It should test that users outside the Threshold Manager group
cannot unlink the Threshold Param
"""
u = self._create_test_user()
param = self._get_param()
system_group = self.env.ref('base.group_system')
u.write({'in_group_%s' % system_group.id: True})
with self.assertRaises(AccessError):
param.sudo(u.id).unlink()
def test_can_write(self):
"""
It should test that users in the Threshold Manager group can
write the Threshold Param
"""
u = self._create_test_user()
self._add_user_to_group(u)
param = self._get_param()
res = '10'
param.sudo(u.id).write({'value': res})
self.assertEquals(param.value, res)
def test_cannot_write(self):
"""
It should test that users outside the Threshold Manager group
cannot write the Threshold Param
"""
u = self._create_test_user()
system_group = self.env.ref('base.group_system')
access_group = self.env.ref('base.group_erp_manager')
u.write({
'in_group_%s' % system_group.id: True,
'in_group_%s' % access_group.id: True,
})
param = self._get_param()
with self.assertRaises(AccessError):
param.sudo(u.id).write({'value': '10'})