72 lines
2.1 KiB
Python
72 lines
2.1 KiB
Python
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
|
|
from odoo.addons.payroll.models.hr_payslip import BaseBrowsableObject, BrowsableObject
|
|
|
|
from .common import TestPayslipBase
|
|
|
|
|
|
class TestBrowsableObject(TestPayslipBase):
|
|
def setUp(self):
|
|
super().setUp()
|
|
|
|
def test_init(self):
|
|
obj = BrowsableObject(self.richard_emp.id, {"test": 1}, self.env)
|
|
|
|
self.assertEqual(obj.test, 1, "Simple initialization")
|
|
self.assertEqual(
|
|
obj.employee_id,
|
|
self.richard_emp.id,
|
|
"Employee Id is retrieved successfully",
|
|
)
|
|
self.assertEqual(obj.env, self.env, "Env is retrieved successfully")
|
|
|
|
d = {
|
|
"level1": BaseBrowsableObject(
|
|
{
|
|
"level2": 10,
|
|
"env": 900.0,
|
|
},
|
|
)
|
|
}
|
|
obj = BrowsableObject(self.richard_emp.id, d, self.env)
|
|
|
|
self.assertEqual(obj.level1.level2, 10, "Nested initialization")
|
|
self.assertEqual(
|
|
obj.employee_id,
|
|
self.richard_emp.id,
|
|
"Employee Id is retrieved successfully from nested dictionary",
|
|
)
|
|
self.assertEqual(
|
|
obj.env, self.env, "Env is retrieved successfully from nested dictionary"
|
|
)
|
|
self.assertEqual(
|
|
obj.level1.employee_id, 0.0, "Employee Id is *NOT* in BaseBrowsableObject"
|
|
)
|
|
self.assertEqual(
|
|
obj.level1.env,
|
|
900.0,
|
|
"Env is *IN* BaseBrowsableObject, but it's in user-defined dictionary",
|
|
)
|
|
|
|
def test_update_attribute(self):
|
|
obj = BrowsableObject(
|
|
self.richard_emp.id,
|
|
{
|
|
"foo": BaseBrowsableObject(
|
|
{
|
|
"bar": 200.0,
|
|
}
|
|
)
|
|
},
|
|
self.env,
|
|
)
|
|
self.assertEqual(obj.foo.bar, 200.0, "Nested initialization succeeded")
|
|
|
|
obj.foo.bar = 350.0
|
|
self.assertEqual(
|
|
obj.foo.bar,
|
|
350.0,
|
|
"Updating of attribute using dot ('.') notation succeeded",
|
|
)
|