from .common import TestHotel from odoo import fields from odoo.exceptions import ValidationError class TestMassiveChanges(TestHotel): # be aware using self.env.user.hotel_id because it is the value configure for the user running the tests # base massive change record def base_massive_change_vals(self, hotel_id=None): return { 'hotel_id': hotel_id and hotel_id.id or self.main_hotel_property.id, 'date_start': fields.Date.today(), 'date_end': fields.Date.today(), } def pricelist_massive_change_vals(self, pricelist_id=None): return { 'pricelist_id': pricelist_id and pricelist_id.id or self.list0.id, 'price': 50.0, } def test_daily_pricelist(self): # Only daily pricelist can be manage by a massive change self.list0.pricelist_type = '' with self.assertRaises(ValidationError): vals = self.base_massive_change_vals() vals.update( self.pricelist_massive_change_vals() ) self.env['hotel.wizard.massive.changes'].create(vals) # create a valid record using a daily pricelist self.list0.pricelist_type = 'daily' test_result = self.env['hotel.wizard.massive.changes'].create(vals) self.assertEqual(test_result.pricelist_id, self.list0) def test_pricelist_by_hotel(self): # Ensure the pricelist plan belongs to the current hotel #1 with self.assertRaises(ValidationError): vals = self.base_massive_change_vals(self.demo_hotel_property) vals.update( self.pricelist_massive_change_vals() ) self.env['hotel.wizard.massive.changes'].create(vals) # Ensure the pricelist plan belongs to the current hotel #2 with self.assertRaises(ValidationError): vals = self.base_massive_change_vals() vals.update( self.pricelist_massive_change_vals(self.list1) ) self.list1.hotel_ids = self.demo_hotel_property self.list1.pricelist_type = 'daily' self.env['hotel.wizard.massive.changes'].create(vals) # create a valid record using the current hotel vals = self.base_massive_change_vals() vals.update( self.pricelist_massive_change_vals(self.list1) ) self.list1.hotel_ids = self.main_hotel_property self.list1.pricelist_type = 'daily' test_result = self.env['hotel.wizard.massive.changes'].create(vals) self.assertEqual(test_result.pricelist_id.hotel_ids, self.main_hotel_property) def test_do_massive_change(self): # check the result of a massive change pass