chore: import enterprise addons 19.0 bulk snapshot

This commit is contained in:
1b-agent committed 2026-09-16 10:13:08 +00:00
commit ca4af030d3
39951 files changed
+15570005

No files matched your search

+55
View File
@@ -0,0 +1,55 @@
from odoo import exceptions
from odoo.tests import users
from .common import AppointmentCommon
class AppointmentCalendarEventTest(AppointmentCommon):
@users('apt_manager')
def test_appointment_calendar_event_inverse_capacity(self):
"""Ensure the inverse appropriately assigns bookings such that the input reserved capacity is preserved.
If the resources cannot hold the requested capacity, an error should be raised.
In the case of appointments where capacity is not managed, the capacity should be 1 per resource selected
regardless of their capacity.
"""
user_appointment = self.apt_type_manage_capacity_users
user_appointment.staff_user_ids += self.env.user
resource_appointment = self.apt_type_resource
resource_appointment.resource_ids = [
(0, 0, {'name': '1', 'capacity': 1}),
(0, 0, {'name': '3', 'capacity': 3}),
(0, 0, {'name': '5', 'capacity': 5}),
]
base_dict = {'manage_capacity': False, 'user_capacity': 1}
test_cases = [
(user_appointment, {'manage_capacity': False, 'user_capacity': 5}, {}, 5, 1),
(user_appointment, {'manage_capacity': True, 'user_capacity': 5}, {}, 4, 4),
(user_appointment, {'manage_capacity': True, 'user_capacity': 5}, {}, 5, 5),
(user_appointment, {'manage_capacity': True, 'user_capacity': 5}, {}, 6, None),
(resource_appointment, {'manage_capacity': False}, {'resource_ids': resource_appointment.resource_ids}, 2, 3),
(resource_appointment, {'manage_capacity': False}, {'resource_ids': resource_appointment.resource_ids}, 5, 3),
(resource_appointment, {'manage_capacity': True}, {'resource_ids': resource_appointment.resource_ids}, 8, 8),
(resource_appointment, {'manage_capacity': True}, {'resource_ids': resource_appointment.resource_ids}, 10, None),
]
for appointment_type, appointment_vals, event_vals, total_capacity_reserved, expected_total_capacity_reserved in test_cases:
with self.subTest(
appointment=appointment_type.name, appointment_vals=appointment_vals, event_vals=event_vals,
total_capacity_reserved=total_capacity_reserved, expected_total_capacity_reserved=expected_total_capacity_reserved,
):
appointment_type.write(base_dict | appointment_vals)
calendar_event_vals = {
'appointment_type_id': appointment_type.id,
'name': 'Test Booking',
'total_capacity_reserved': total_capacity_reserved,
} | event_vals
if expected_total_capacity_reserved is None:
with self.assertRaises(exceptions.UserError):
self.env['calendar.event'].create(calendar_event_vals)
else:
event = self.env['calendar.event'].create(calendar_event_vals)
event.invalidate_recordset(['total_capacity_reserved', 'user_id', 'resource_ids'])
self.assertEqual(event.total_capacity_reserved, expected_total_capacity_reserved)
event.unlink()