Initial commit: OCA Mrp packages (117 packages)

This commit is contained in:
Ernad Husremovic 2025-08-29 15:43:05 +02:00
commit 277e84fd7a
4403 changed files with 395154 additions and 0 deletions

View file

@ -0,0 +1 @@
from . import test_event_registration

View file

@ -0,0 +1,122 @@
# Copyright 2014 Tecnativa S.L. - Pedro M. Baeza
# Copyright 2015 Tecnativa S.L. - Javier Iniesta
# Copyright 2016 Tecnativa S.L. - Antonio Espinosa
# Copyright 2016 Tecnativa S.L. - Vicent Cubells
# Copyright 2017 Tecnativa - David Vidal
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from datetime import datetime, timedelta
from psycopg2 import IntegrityError
from odoo import fields
from odoo.tests import Form, common
from odoo.tools import mute_logger
class TestEventRegistration(common.TransactionCase):
@classmethod
def setUpClass(cls):
super(TestEventRegistration, cls).setUpClass()
cls.event_0 = cls.env["event.event"].create(
{
"name": "Test event",
"date_begin": fields.Datetime.now(),
"date_end": fields.Datetime.now(),
"seats_limited": True,
"seats_max": "5",
}
)
cls.event_0.create_partner = True
registration_model = cls.env["event.registration"].with_context(
registration_force_draft=True
)
partner_model = cls.env["res.partner"]
cls.partner_01 = partner_model.create(
{
"name": "Test Partner 01",
"email": "email01@test.com",
"phone": "254728911",
}
)
cls.registration_01 = registration_model.create(
{"email": "email01@test.com", "event_id": cls.event_0.id}
)
cls.registration_02 = registration_model.create(
{
"email": "email02@test.com",
"event_id": cls.event_0.id,
"name": "Test Registration 02",
"phone": "254728911",
}
)
def test_create(self):
self.assertEqual(self.partner_01.name, self.registration_01.name)
self.assertEqual(self.partner_01.email, self.registration_01.email)
self.assertEqual(self.partner_01.phone, self.registration_01.phone)
partner_02 = self.registration_02.attendee_partner_id
self.assertEqual(partner_02.name, self.registration_02.name)
self.assertEqual(partner_02.email, self.registration_02.email)
self.assertEqual(partner_02.phone, self.registration_02.phone)
def test_count_registrations(self):
event_1 = self.event_0.copy()
self.assertEqual(self.partner_01.registration_count, 0)
self.registration_01.state = "open"
self.partner_01.invalidate_recordset()
self.assertEqual(self.partner_01.registration_count, 1)
self.registration_02.state = "done"
self.registration_02.attendee_partner_id = self.partner_01
self.registration_02.event_id = event_1
self.partner_01.invalidate_recordset()
self.assertEqual(self.partner_01.registration_count, 2)
def test_button_register(self):
event_1 = self.event_0.copy()
wizard = self.env["res.partner.register.event"].create({"event": event_1.id})
active_ids = [self.partner_01.id, self.registration_02.attendee_partner_id.id]
wizard.with_context(active_ids=active_ids).button_register()
def test_data_update(self):
event_2 = self.event_0.copy()
self.yesterday = datetime.now() - timedelta(days=1)
self.tomorrow = datetime.now() + timedelta(days=1)
self.last_month = datetime.now() - timedelta(days=30)
# Set an old event
event_2.write({"date_begin": self.last_month})
event_2.write({"date_end": self.yesterday})
self.registration_02.event_id = event_2
self.registration_02.attendee_partner_id = self.partner_01
# Update partner for an old event
self.partner_01.write({"email": "new@test.com"})
self.assertNotEqual(event_2.registration_ids.email, "new@test.com")
# Update partner for a current event
event_2.write({"date_end": self.tomorrow})
self.partner_01.write({"email": "new@test.com"})
self.assertEqual(event_2.registration_ids.email, "new@test.com")
@mute_logger("odoo.sql_db")
def test_delete_registered_partner(self):
# We can't delete a partner with registrations
with self.assertRaises(IntegrityError), self.cr.savepoint():
self.cr._default_log_exceptions = False
self.partner_01.unlink()
# Create a brand new partner and delete it
partner3 = self.env["res.partner"].create({"name": "unregistered partner"})
partner3.unlink()
self.assertFalse(partner3.exists())
def test_attendee_partner_is_not_contact(self):
# Create a partner that belongs to a company but is saved as "other address"
self.partner_01.type = "other"
self.partner_01.parent_id = self.env["res.partner"].create(
{"name": "Company", "is_company": True}
)
# The partner gets registered
with Form(self.registration_01) as reg_f:
reg_f.attendee_partner_id = self.partner_01
# Partner data inherited in registration
self.assertEqual(self.registration_01.name, self.partner_01.name)
self.assertEqual(self.registration_01.email, self.partner_01.email)
self.assertEqual(self.registration_01.phone, self.partner_01.phone)