mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[FIX]pms_hr_property: module test
This commit is contained in:
@@ -1,3 +1,7 @@
|
|||||||
|
# Copyright 2024 OsoTranquilo - José Luis Algara
|
||||||
|
# Copyright 2024 Irlui Ramírez
|
||||||
|
# From Consultores Hoteleros Integrales (ALDA Hotels) - 2024
|
||||||
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
||||||
from odoo.tests.common import TransactionCase
|
from odoo.tests.common import TransactionCase
|
||||||
|
|
||||||
|
|
||||||
@@ -8,22 +12,17 @@ class TestPmsHrProperty(TransactionCase):
|
|||||||
self.HrEmployee = self.env["hr.employee"]
|
self.HrEmployee = self.env["hr.employee"]
|
||||||
self.Company = self.env["res.company"]
|
self.Company = self.env["res.company"]
|
||||||
|
|
||||||
# Crear empresa
|
|
||||||
self.company1 = self.Company.create(
|
self.company1 = self.Company.create(
|
||||||
{
|
{
|
||||||
"name": "Company 1",
|
"name": "Company 1",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
# Crear propiedad
|
|
||||||
self.property1 = self.PmsProperty.create(
|
self.property1 = self.PmsProperty.create(
|
||||||
{
|
{
|
||||||
"name": "Property 1",
|
"name": "Property 1",
|
||||||
"company_id": self.company1.id,
|
"company_id": self.company1.id,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
# Crear usuarios
|
|
||||||
user_dict = {
|
user_dict = {
|
||||||
"name": "User 1",
|
"name": "User 1",
|
||||||
"login": "tua@example.com",
|
"login": "tua@example.com",
|
||||||
@@ -37,8 +36,6 @@ class TestPmsHrProperty(TransactionCase):
|
|||||||
"password": "base-test-passwd",
|
"password": "base-test-passwd",
|
||||||
}
|
}
|
||||||
self.user_test2 = self.env["res.users"].create(user_dict2)
|
self.user_test2 = self.env["res.users"].create(user_dict2)
|
||||||
|
|
||||||
# Crear empleados
|
|
||||||
employee_dict = {
|
employee_dict = {
|
||||||
"name": "Employee 1",
|
"name": "Employee 1",
|
||||||
"user_id": self.user_test.id,
|
"user_id": self.user_test.id,
|
||||||
@@ -52,26 +49,20 @@ class TestPmsHrProperty(TransactionCase):
|
|||||||
"address_id": self.user_test2.partner_id.id,
|
"address_id": self.user_test2.partner_id.id,
|
||||||
}
|
}
|
||||||
self.employee2 = self.env["hr.employee"].create(employee_dict2)
|
self.employee2 = self.env["hr.employee"].create(employee_dict2)
|
||||||
|
|
||||||
# Asignar la propiedad al empleado
|
|
||||||
self.employee.write({"property_ids": [(4, self.property1.id)]})
|
self.employee.write({"property_ids": [(4, self.property1.id)]})
|
||||||
|
|
||||||
def test_compute_employee_ids(self):
|
def test_compute_employee_ids(self):
|
||||||
"""Verifica que el método _compute_employee_ids
|
"""Verifica que el método _compute_employee_ids
|
||||||
calcule correctamente el campo employee_ids"""
|
calcule correctamente el campo employee_ids"""
|
||||||
|
|
||||||
# Forzar el cálculo del campo employee_ids en property1
|
|
||||||
self.property1._compute_employee_ids()
|
self.property1._compute_employee_ids()
|
||||||
|
|
||||||
# Obtener el campo calculado para property1
|
|
||||||
assigned_employees = self.property1.employee_ids
|
assigned_employees = self.property1.employee_ids
|
||||||
|
|
||||||
# Empleados esperados (los asignados a property1)
|
|
||||||
expected_employees = self.HrEmployee.search(
|
expected_employees = self.HrEmployee.search(
|
||||||
[("property_ids", "in", self.property1.id)]
|
[("property_ids", "in", self.property1.id)]
|
||||||
)
|
)
|
||||||
|
|
||||||
# Comprobar que el campo calculado coincide con los empleados esperados
|
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
sorted(assigned_employees.ids),
|
sorted(assigned_employees.ids),
|
||||||
sorted(expected_employees.ids),
|
sorted(expected_employees.ids),
|
||||||
@@ -81,16 +72,11 @@ class TestPmsHrProperty(TransactionCase):
|
|||||||
def test_no_employees_assigned(self):
|
def test_no_employees_assigned(self):
|
||||||
"""Verifica el comportamiento si no hay empleados asignados a una propiedad"""
|
"""Verifica el comportamiento si no hay empleados asignados a una propiedad"""
|
||||||
|
|
||||||
# Eliminar la asignación de property1 a employee
|
|
||||||
self.employee.write({"property_ids": [(5, self.property1.id)]})
|
self.employee.write({"property_ids": [(5, self.property1.id)]})
|
||||||
|
|
||||||
# Forzar el cálculo del campo employee_ids en property1
|
|
||||||
self.property1._compute_employee_ids()
|
self.property1._compute_employee_ids()
|
||||||
|
|
||||||
# Obtener el campo calculado para property1
|
|
||||||
assigned_employees = self.property1.employee_ids
|
assigned_employees = self.property1.employee_ids
|
||||||
|
|
||||||
# Comprobar que no haya empleados asignados a property1
|
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
len(assigned_employees),
|
len(assigned_employees),
|
||||||
0,
|
0,
|
||||||
@@ -99,8 +85,6 @@ class TestPmsHrProperty(TransactionCase):
|
|||||||
|
|
||||||
def test_multiple_properties(self):
|
def test_multiple_properties(self):
|
||||||
"""Verifica que los empleados se asignen correctamente a múltiples propiedades"""
|
"""Verifica que los empleados se asignen correctamente a múltiples propiedades"""
|
||||||
|
|
||||||
# Crear otra propiedad
|
|
||||||
self.property2 = self.PmsProperty.create(
|
self.property2 = self.PmsProperty.create(
|
||||||
{
|
{
|
||||||
"name": "Property 2",
|
"name": "Property 2",
|
||||||
@@ -108,21 +92,16 @@ class TestPmsHrProperty(TransactionCase):
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
# Asignar la propiedad 2 a el empleado 2
|
|
||||||
self.employee2.write({"property_ids": [(4, self.property2.id)]})
|
self.employee2.write({"property_ids": [(4, self.property2.id)]})
|
||||||
|
|
||||||
# Forzar el cálculo del campo employee_ids en property2
|
|
||||||
self.property2._compute_employee_ids()
|
self.property2._compute_employee_ids()
|
||||||
|
|
||||||
# Obtener el campo calculado para property2
|
|
||||||
assigned_employees = self.property2.employee_ids
|
assigned_employees = self.property2.employee_ids
|
||||||
|
|
||||||
# Empleado esperado (asignado a property2)
|
|
||||||
expected_employees = self.HrEmployee.search(
|
expected_employees = self.HrEmployee.search(
|
||||||
[("property_ids", "in", self.property2.id)]
|
[("property_ids", "in", self.property2.id)]
|
||||||
)
|
)
|
||||||
|
|
||||||
# Comprobar que el campo calculado coincide con los empleados esperados
|
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
sorted(assigned_employees.ids),
|
sorted(assigned_employees.ids),
|
||||||
sorted(expected_employees.ids),
|
sorted(expected_employees.ids),
|
||||||
|
|||||||
Reference in New Issue
Block a user