event_sale/tests/test_event_specific.py

53 lines
2.4 KiB
Python
Raw Permalink Normal View History

# -*- 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)