53 lines
2.4 KiB
Python
53 lines
2.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
import datetime
|
|
|
|
from dateutil.relativedelta import relativedelta
|
|
|
|
from odoo.addons.event_sale.tests.common import TestEventSaleCommon
|
|
from odoo.tests.common import Form
|
|
|
|
|
|
class TestEventSpecific(TestEventSaleCommon):
|
|
|
|
def test_event_change_max_seat_no_side_effect(self):
|
|
"""
|
|
Test that changing the Maximum (seats_max), the seats_reserved of all the ticket do not change
|
|
"""
|
|
# Enable "sell tickets with sales orders" so that we have a price column on the tickets
|
|
# Event template
|
|
with Form(self.env['event.type']) as event_type_form:
|
|
event_type_form.name = "Pastafarian Event Template"
|
|
# Edit the default line
|
|
with event_type_form.event_type_ticket_ids.new() as ticket_line:
|
|
ticket_line.name = 'Pastafarian Registration'
|
|
ticket_line.price = 0
|
|
event_type = event_type_form.save()
|
|
|
|
with Form(self.env['event.event']) as event_event_form:
|
|
event_event_form.name = 'Annual Pastafarian Reunion (APR)'
|
|
event_event_form.date_begin = datetime.datetime.now() + relativedelta(days=2)
|
|
event_event_form.date_end = datetime.datetime.now() + relativedelta(days=3)
|
|
event_event_form.event_type_id = event_type # Set the template
|
|
# Create second ticket (VIP)
|
|
with event_event_form.event_ticket_ids.new() as ticket_line:
|
|
ticket_line.name = 'VIP (Very Important Pastafarian)'
|
|
ticket_line.price = 10
|
|
event_event = event_event_form.save()
|
|
|
|
# Add two registrations for the event, one registration for each ticket type
|
|
for ticket in event_event.event_ticket_ids:
|
|
self.env['event.registration'].create({
|
|
'event_id': event_event.id,
|
|
'event_ticket_id': ticket.id
|
|
})
|
|
|
|
# Edit the maximum
|
|
before_confirmed = [t.seats_reserved for t in event_event.event_ticket_ids]
|
|
with Form(event_event) as event_event_form:
|
|
with event_event_form.event_ticket_ids.edit(0) as ticket_line:
|
|
ticket_line.seats_max = ticket_line.seats_max + 1
|
|
after_confirmed = [t.seats_reserved for t in event_event.event_ticket_ids]
|
|
self.assertEqual(before_confirmed, after_confirmed)
|