mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[ADD]pms: Multiproperty domains in master models (#56)
* [IMP]pms: Multiproperty domains in master models * [FIX]pms: syntax errors fixed * [FIX]pms: Pre-commit Co-authored-by: Darío Lodeiros <dario@commitsun.com>
This commit is contained in:
@@ -33,4 +33,7 @@ from . import test_pms_wizard_folio
|
||||
from . import test_pms_res_users
|
||||
from . import test_pms_amenity
|
||||
from . import test_pms_room
|
||||
from . import test_pms_board_service_line
|
||||
from . import test_pms_board_service_room_type
|
||||
from . import test_pms_board_service_room_type_line
|
||||
from . import test_pms_folio_invoice
|
||||
|
||||
46
pms/tests/test_pms_board_service_line.py
Normal file
46
pms/tests/test_pms_board_service_line.py
Normal file
@@ -0,0 +1,46 @@
|
||||
from odoo.exceptions import ValidationError
|
||||
|
||||
from .common import TestHotel
|
||||
|
||||
|
||||
class TestPmsBoardService(TestHotel):
|
||||
def test_property_integrity(self):
|
||||
self.company1 = self.env["res.company"].create(
|
||||
{
|
||||
"name": "Pms_Company_Test",
|
||||
}
|
||||
)
|
||||
self.property1 = self.env["pms.property"].create(
|
||||
{
|
||||
"name": "Pms_property_test1",
|
||||
"company_id": self.company1.id,
|
||||
"default_pricelist_id": self.env.ref("product.list0").id,
|
||||
}
|
||||
)
|
||||
self.property2 = self.env["pms.property"].create(
|
||||
{
|
||||
"name": "Pms_property_test2",
|
||||
"company_id": self.company1.id,
|
||||
"default_pricelist_id": self.env.ref("product.list0").id,
|
||||
}
|
||||
)
|
||||
self.product = self.env["product.product"].create(
|
||||
{"name": "Product", "pms_property_ids": self.property1}
|
||||
)
|
||||
|
||||
self.board_service = self.env["pms.board.service"].create(
|
||||
{
|
||||
"name": "Board Service",
|
||||
"price_type": "fixed",
|
||||
}
|
||||
)
|
||||
with self.assertRaises(ValidationError):
|
||||
board_service_line = self.board_service_line = self.env[
|
||||
"pms.board.service.line"
|
||||
].create(
|
||||
{
|
||||
"product_id": self.product.id,
|
||||
"pms_board_service_id": self.board_service.id,
|
||||
}
|
||||
)
|
||||
board_service_line.pms_property_ids = [self.property2.id]
|
||||
70
pms/tests/test_pms_board_service_room_type.py
Normal file
70
pms/tests/test_pms_board_service_room_type.py
Normal file
@@ -0,0 +1,70 @@
|
||||
from odoo.exceptions import ValidationError
|
||||
|
||||
from .common import TestHotel
|
||||
|
||||
|
||||
class TestPmsBoardServiceRoomType(TestHotel):
|
||||
def _create_common_scenario(self):
|
||||
self.company1 = self.env["res.company"].create(
|
||||
{
|
||||
"name": "Pms_Company_Test",
|
||||
}
|
||||
)
|
||||
self.property1 = self.env["pms.property"].create(
|
||||
{
|
||||
"name": "Pms_property_test1",
|
||||
"company_id": self.company1.id,
|
||||
"default_pricelist_id": self.env.ref("product.list0").id,
|
||||
}
|
||||
)
|
||||
self.property2 = self.env["pms.property"].create(
|
||||
{
|
||||
"name": "Pms_property_test2",
|
||||
"company_id": self.company1.id,
|
||||
"default_pricelist_id": self.env.ref("product.list0").id,
|
||||
}
|
||||
)
|
||||
self.board_service = self.env["pms.board.service"].create(
|
||||
{"name": "Board Service", "price_type": "fixed"}
|
||||
)
|
||||
self.room_type_class = self.env["pms.room.type.class"].create(
|
||||
{"name": "Room Type Class", "code_class": "SIN1"}
|
||||
)
|
||||
self.room_type = self.env["pms.room.type"].create(
|
||||
{
|
||||
"name": "Room Type",
|
||||
"code_type": "Type1",
|
||||
"class_id": self.room_type_class.id,
|
||||
}
|
||||
)
|
||||
|
||||
def test_room_type_property_integrity(self):
|
||||
self._create_common_scenario()
|
||||
self.room_type.pms_property_ids = [self.property1.id]
|
||||
with self.assertRaises(ValidationError):
|
||||
self.board_service_room_type = self.env[
|
||||
"pms.board.service.room.type"
|
||||
].create(
|
||||
{
|
||||
"pms_board_service_id": self.board_service.id,
|
||||
"pms_room_type_id": self.room_type.id,
|
||||
"price_type": "fixed",
|
||||
"pms_property_ids": self.property2,
|
||||
}
|
||||
)
|
||||
|
||||
def test_pricelist_property_integrity(self):
|
||||
self._create_common_scenario()
|
||||
self.pricelist = self.env["product.pricelist"].create(
|
||||
{"name": "pricelist_1", "pms_property_ids": [self.property1.id]}
|
||||
)
|
||||
with self.assertRaises(ValidationError):
|
||||
self.env["pms.board.service.room.type"].create(
|
||||
{
|
||||
"pms_board_service_id": self.board_service.id,
|
||||
"pms_room_type_id": self.room_type.id,
|
||||
"price_type": "fixed",
|
||||
"pricelist_id": self.pricelist.id,
|
||||
"pms_property_ids": self.property2,
|
||||
}
|
||||
)
|
||||
63
pms/tests/test_pms_board_service_room_type_line.py
Normal file
63
pms/tests/test_pms_board_service_room_type_line.py
Normal file
@@ -0,0 +1,63 @@
|
||||
from odoo.exceptions import ValidationError
|
||||
|
||||
from .common import TestHotel
|
||||
|
||||
|
||||
class TestPmsBoardServiceRoomTypeLine(TestHotel):
|
||||
def test_check_product_property_integrity(self):
|
||||
self.company1 = self.env["res.company"].create(
|
||||
{
|
||||
"name": "Pms_Company_Test",
|
||||
}
|
||||
)
|
||||
self.property1 = self.env["pms.property"].create(
|
||||
{
|
||||
"name": "Pms_property_test1",
|
||||
"company_id": self.company1.id,
|
||||
"default_pricelist_id": self.env.ref("product.list0").id,
|
||||
}
|
||||
)
|
||||
self.property2 = self.env["pms.property"].create(
|
||||
{
|
||||
"name": "Pms_property_test2",
|
||||
"company_id": self.company1.id,
|
||||
"default_pricelist_id": self.env.ref("product.list0").id,
|
||||
}
|
||||
)
|
||||
self.board_service = self.env["pms.board.service"].create(
|
||||
{"name": "Board Service", "price_type": "fixed"}
|
||||
)
|
||||
self.room_type_class = self.env["pms.room.type.class"].create(
|
||||
{
|
||||
"name": "Room Type Class",
|
||||
"pms_property_ids": self.property1,
|
||||
"code_class": "SIN1",
|
||||
}
|
||||
)
|
||||
self.room_type = self.env["pms.room.type"].create(
|
||||
{
|
||||
"name": "Room Type",
|
||||
"code_type": "Type1",
|
||||
"class_id": self.room_type_class.id,
|
||||
}
|
||||
)
|
||||
self.board_service_room_type = self.env["pms.board.service.room.type"].create(
|
||||
{
|
||||
"pms_board_service_id": self.board_service.id,
|
||||
"pms_room_type_id": self.room_type.id,
|
||||
"price_type": "fixed",
|
||||
"pms_property_ids": self.property1,
|
||||
}
|
||||
)
|
||||
|
||||
self.product = self.env["product.product"].create(
|
||||
{"name": "Product", "pms_property_ids": self.property2}
|
||||
)
|
||||
|
||||
with self.assertRaises(ValidationError):
|
||||
self.env["pms.board.service.room.type.line"].create(
|
||||
{
|
||||
"pms_board_service_room_type_id": self.board_service_room_type.id,
|
||||
"product_id": self.product.id,
|
||||
}
|
||||
)
|
||||
@@ -148,3 +148,17 @@ class TestPmsPricelist(common.TransactionCase):
|
||||
"cancelation_rule_id": self.cancelation_rule.id,
|
||||
}
|
||||
)
|
||||
|
||||
def test_availability_plan_property_integrity(self):
|
||||
self.create_common_scenario()
|
||||
self.availability_plan = self.env["pms.room.type.availability.plan"].create(
|
||||
{"name": "Availability Plan", "pms_property_ids": [self.property1.id]}
|
||||
)
|
||||
with self.assertRaises(ValidationError):
|
||||
self.env["product.pricelist"].create(
|
||||
{
|
||||
"name": "Pricelist",
|
||||
"pms_property_ids": [self.property2.id],
|
||||
"availability_plan_id": self.availability_plan.id,
|
||||
}
|
||||
)
|
||||
|
||||
@@ -725,3 +725,85 @@ class TestRoomTypeCodePropertyUniqueness(TestRoomType):
|
||||
}
|
||||
)
|
||||
r.pms_property_ids = [(4, self.p1.id)]
|
||||
|
||||
def test_check_board_service_property_integrity(self):
|
||||
self.company1 = self.env["res.company"].create(
|
||||
{
|
||||
"name": "Pms_Company_Test",
|
||||
}
|
||||
)
|
||||
self.property1 = self.env["pms.property"].create(
|
||||
{
|
||||
"name": "Pms_property_test1",
|
||||
"company_id": self.company1.id,
|
||||
"default_pricelist_id": self.env.ref("product.list0").id,
|
||||
}
|
||||
)
|
||||
self.property2 = self.env["pms.property"].create(
|
||||
{
|
||||
"name": "Pms_property_test2",
|
||||
"company_id": self.company1.id,
|
||||
"default_pricelist_id": self.env.ref("product.list0").id,
|
||||
}
|
||||
)
|
||||
self.room_type_class = self.env["pms.room.type.class"].create(
|
||||
{"name": "Room Type Class", "code_class": "SIN1"}
|
||||
)
|
||||
self.room_type = self.env["pms.room.type"].create(
|
||||
{
|
||||
"name": "Room Type",
|
||||
"code_type": "Type1",
|
||||
"pms_property_ids": self.property2,
|
||||
"class_id": self.room_type_class.id,
|
||||
}
|
||||
)
|
||||
self.board_service = self.env["pms.board.service"].create(
|
||||
{"name": "Board Service", "price_type": "fixed"}
|
||||
)
|
||||
with self.assertRaises(ValidationError):
|
||||
self.env["pms.board.service.room.type"].create(
|
||||
{
|
||||
"pms_board_service_id": self.board_service.id,
|
||||
"pms_room_type_id": self.room_type.id,
|
||||
"price_type": "fixed",
|
||||
"pricelist_id": self.env.ref("product.list0").id,
|
||||
"pms_property_ids": self.property2,
|
||||
}
|
||||
)
|
||||
|
||||
def test_check_amenities_property_integrity(self):
|
||||
self.company1 = self.env["res.company"].create(
|
||||
{
|
||||
"name": "Pms_Company_Test",
|
||||
}
|
||||
)
|
||||
self.property1 = self.env["pms.property"].create(
|
||||
{
|
||||
"name": "Pms_property_test1",
|
||||
"company_id": self.company1.id,
|
||||
"default_pricelist_id": self.env.ref("product.list0").id,
|
||||
}
|
||||
)
|
||||
self.property2 = self.env["pms.property"].create(
|
||||
{
|
||||
"name": "Pms_property_test2",
|
||||
"company_id": self.company1.id,
|
||||
"default_pricelist_id": self.env.ref("product.list0").id,
|
||||
}
|
||||
)
|
||||
self.amenity = self.env["pms.amenity"].create(
|
||||
{"name": "Amenity", "pms_property_ids": self.property1}
|
||||
)
|
||||
self.room_type_class = self.env["pms.room.type.class"].create(
|
||||
{"name": "Room Type Class", "code_class": "SIN1"}
|
||||
)
|
||||
with self.assertRaises(ValidationError):
|
||||
self.env["pms.room.type"].create(
|
||||
{
|
||||
"name": "Room Type",
|
||||
"code_type": "Type1",
|
||||
"class_id": self.room_type_class.id,
|
||||
"pms_property_ids": [self.property2.id],
|
||||
"room_amenity_ids": [self.amenity.id],
|
||||
}
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user