Files
gzth/room/tests/test_room_booking_constraints.py
T
2024-07-09 16:58:16 +08:00

39 lines
1.5 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from datetime import datetime
from odoo.addons.room.tests.common import RoomCommon
from odoo.exceptions import ValidationError
from odoo.tests.common import tagged
@tagged("post_install", "-at_install")
class TestRoomBookingConstraints(RoomCommon):
def test_booking_no_overlap(self):
room_booking = self.env["room.booking"]
# Create a booking overlapping an existing booking
with self.assertRaises(ValidationError, msg="Bookings may not overlap"):
room_booking.create({
"name": "Meeting",
"room_id": self.rooms[0].id,
"start_datetime": datetime(2023, 5, 15, 10, 30),
"stop_datetime": datetime(2023, 5, 15, 11, 30),
})
# Create two bookings that overlap
with self.assertRaises(ValidationError, msg="Bookings may not overlap"):
room_booking.create([
{
"name": "Meeting 1",
"room_id": self.rooms[0].id,
"start_datetime": datetime(2023, 5, 15, 13, 0),
"stop_datetime": datetime(2023, 5, 15, 14, 0),
}, {
"name": "Meeting 2",
"room_id": self.rooms[0].id,
"start_datetime": datetime(2023, 5, 15, 13, 30),
"stop_datetime": datetime(2023, 5, 15, 14, 30),
}
])