From 86141ba90333369c639fd6f464949993f7e37a5a Mon Sep 17 00:00:00 2001 From: irlui Date: Tue, 15 Oct 2024 17:02:23 +0200 Subject: [PATCH] [FIX]:hr_pms_property: remove class method, DB structure and updated test module --- pms_hr_property/__manifest__.py | 2 +- .../migrations/14.0.2.0.0/pre_migration.py | 24 ---- pms_hr_property/models/hr_employee.py | 4 +- pms_hr_property/tests/test_pms_hr_property.py | 119 +++++++++--------- 4 files changed, 61 insertions(+), 88 deletions(-) delete mode 100644 pms_hr_property/migrations/14.0.2.0.0/pre_migration.py diff --git a/pms_hr_property/__manifest__.py b/pms_hr_property/__manifest__.py index 8ae1f1c90..842831c9a 100644 --- a/pms_hr_property/__manifest__.py +++ b/pms_hr_property/__manifest__.py @@ -5,7 +5,7 @@ "name": "PMS Hr Property", "summary": """ Adds to the employee the property on which he works.""", - "version": "14.0.2.0.0", + "version": "14.0.1.0.0", "license": "AGPL-3", "author": "OsoTranquilo,Odoo Community Association (OCA)", "website": "https://github.com/OCA/pms", diff --git a/pms_hr_property/migrations/14.0.2.0.0/pre_migration.py b/pms_hr_property/migrations/14.0.2.0.0/pre_migration.py deleted file mode 100644 index 778b291cd..000000000 --- a/pms_hr_property/migrations/14.0.2.0.0/pre_migration.py +++ /dev/null @@ -1,24 +0,0 @@ -from openupgradelib import openupgrade - - -@openupgrade.migrate() -def migrate(env, version): - openupgrade.logged_query( - env.cr, - """ - UPDATE pms_ rl - SET sale_channel_id = r.sale_channel_origin_id - FROM pms_reservation r - WHERE r.id = rl.reservation_id - """, - ) - - openupgrade.logged_query( - env.cr, - """ - UPDATE pms_service ser - SET sale_channel_origin_id = fol.sale_channel_origin_id - FROM pms_folio fol - WHERE fol.id = ser.folio_id - """, - ) diff --git a/pms_hr_property/models/hr_employee.py b/pms_hr_property/models/hr_employee.py index af758277a..20c000685 100644 --- a/pms_hr_property/models/hr_employee.py +++ b/pms_hr_property/models/hr_employee.py @@ -1,7 +1,7 @@ # Copyright 2023 OsoTranquilo +# 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 import fields, models diff --git a/pms_hr_property/tests/test_pms_hr_property.py b/pms_hr_property/tests/test_pms_hr_property.py index aa41b3d3a..a26aeb00e 100644 --- a/pms_hr_property/tests/test_pms_hr_property.py +++ b/pms_hr_property/tests/test_pms_hr_property.py @@ -4,7 +4,6 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). from odoo.tests.common import TransactionCase - class TestPmsHrProperty(TransactionCase): def setUp(self): super(TestPmsHrProperty, self).setUp() @@ -12,98 +11,96 @@ class TestPmsHrProperty(TransactionCase): self.HrEmployee = self.env["hr.employee"] self.Company = self.env["res.company"] + # Company creation self.company1 = self.Company.create( - { - "name": "Company 1", - } + {"name": "Company 1"} ) + + # Property creation self.property1 = self.PmsProperty.create( { - "name": "Property 1", - "company_id": self.company1.id, + "name": "Property 1", + "company_id": self.company1.id } ) + + # User creation user_dict = { - "name": "User 1", - "login": "tua@example.com", - "password": "base-test-passwd", + "name": "User 1", + "login": "tua@example.com", + "password": "base-test-passwd" } self.user_test = self.env["res.users"].create(user_dict) user_dict2 = { - "name": "User 2", - "login": "user2@example.com", - "password": "base-test-passwd", + "name": "User 2", + "login": "user2@example.com", + "password": "base-test-passwd" } self.user_test2 = self.env["res.users"].create(user_dict2) + + # Employee creation employee_dict = { - "name": "Employee 1", - "user_id": self.user_test.id, - "address_id": self.user_test.partner_id.id, + "name": "Employee 1", + "user_id": self.user_test.id, + "address_id": self.user_test.partner_id.id } self.employee = self.env["hr.employee"].create(employee_dict) employee_dict2 = { - "name": "Employee 2", - "user_id": self.user_test2.id, - "address_id": self.user_test2.partner_id.id, + "name": "Employee 2", + "user_id": self.user_test2.id, + "address_id": self.user_test2.partner_id.id } self.employee2 = self.env["hr.employee"].create(employee_dict2) - self.employee.write({"property_ids": [(4, self.property1.id)]}) - def test_compute_employee_ids(self): - """Verifica que el método _compute_employee_ids - calcule correctamente el campo employee_ids""" - - self.property1._compute_employee_ids() + def test_employee_assignment(self): + """Check if employees are correctly assigned to properties""" + self.employee.write( + {"property_ids": [(4, self.property1.id)]} + ) assigned_employees = self.property1.employee_ids - - expected_employees = self.HrEmployee.search( - [("property_ids", "in", self.property1.id)] + self.assertIn( + self.employee, + assigned_employees, + "The employee is not correctly assigned to the property." ) - self.assertEqual( - sorted(assigned_employees.ids), - sorted(expected_employees.ids), - "Property 1 no coincide con los empleados esperados.", + def test_employee_removal(self): + """Check if employees can be unassigned from properties correctly""" + self.employee.write( + {"property_ids": [(4, self.property1.id)]} ) - def test_no_employees_assigned(self): - """Verifica el comportamiento si no hay empleados asignados a una propiedad""" + self.employee.write( + {"property_ids": [(3, self.property1.id)]} + ) - self.employee.write({"property_ids": [(5, self.property1.id)]}) - - self.property1._compute_employee_ids() assigned_employees = self.property1.employee_ids - - self.assertEqual( - len(assigned_employees), - 0, - "Se esperaba que no hubiera empleados asignados a la propiedad 1.", + self.assertNotIn( + self.employee, + assigned_employees, + "The employee is still assigned to the property after removal." ) - def test_multiple_properties(self): - """Verifica que los empleados se asignen correctamente a múltiples propiedades""" - self.property2 = self.PmsProperty.create( - { - "name": "Property 2", - "company_id": self.company1.id, - } + def test_multiple_employees_assignment(self): + """Check if multiple employees can be assigned to a single property""" + self.employee.write( + {"property_ids": [(4, self.property1.id)]} + ) + self.employee2.write( + {"property_ids": [(4, self.property1.id)]} ) - self.employee2.write({"property_ids": [(4, self.property2.id)]}) - - self.property2._compute_employee_ids() - - assigned_employees = self.property2.employee_ids - - expected_employees = self.HrEmployee.search( - [("property_ids", "in", self.property2.id)] + assigned_employees = self.property1.employee_ids + self.assertIn( + self.employee, + assigned_employees, + "Employee 1 is not correctly assigned." ) - - self.assertEqual( - sorted(assigned_employees.ids), - sorted(expected_employees.ids), - "employee_ids calculado para la propiedad 2 no coincide con los empleados.", + self.assertIn( + self.employee2, + assigned_employees, + "Employee 2 is not correctly assigned." )