diff options
| author | Thibault Delavallée <tde@odoo.com> | 2021-02-08 10:24:44 +0000 |
|---|---|---|
| committer | Thibault Delavallée <tde@odoo.com> | 2021-02-10 16:56:07 +0000 |
| commit | 6eac6ede401fd949405b7e1c8c82acfa5a3f6a9d (patch) | |
| tree | eb88c61cff72f24ca250bd8d1f05fc1bb37a2313 /addons/event/tests | |
| parent | 3b58b373e1c6c155f65b88c31cbb47794cb0a554 (diff) | |
[IMP] event, website_event_track: add tests about stored editable computed fields
Add tests related to registration / partner contact fields synchronization.
Add tests with user input and/or partner synchronization to ensure editable
stored fields work as expected on registration model.
Add tests related to event track / partner contact fields synchronization.
Add tests with user input and/or partner synchronization to ensure editable
stored fields work as expected on track model.
Add tests related to event / event type configuration fields synchronization.
Add tests with user input and/or event type synchronization to ensure editable
stored fields work as expected on event model.
Warning: those tests are currently partly failing. Next commits will split
computed fields into several methods in order to fix computation.
LINKS
COM PR #65688
Task ID-2455165
Diffstat (limited to 'addons/event/tests')
| -rw-r--r-- | addons/event/tests/test_event_internals.py | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/addons/event/tests/test_event_internals.py b/addons/event/tests/test_event_internals.py index 98f562f454e..e27db0709e6 100644 --- a/addons/event/tests/test_event_internals.py +++ b/addons/event/tests/test_event_internals.py @@ -128,6 +128,20 @@ class TestEventData(TestEventCommon): self.assertEqual(event.event_mail_ids.interval_type, 'before_event') self.assertEqual(event.event_mail_ids.template_id, self.env.ref('event.event_reminder')) self.assertEqual(len(event.event_ticket_ids), 1) + + # update template, unlink from event -> should not impact event + event_type.write({'has_seats_limitation': False}) + self.assertEqual(event_type.seats_max, 0) + self.assertTrue(event.seats_limited) + self.assertEqual(event.seats_max, 30) # original template value + event.write({'event_type_id': False}) + self.assertEqual(event.event_type_id, self.env["event.type"]) + + # set template back -> update event + event.write({'event_type_id': event_type.id}) + self.assertFalse(event.seats_limited) + self.assertEqual(event.seats_max, 0) + self.assertEqual(len(event.event_ticket_ids), 1) event_ticket1 = event.event_ticket_ids[0] self.assertEqual(event_ticket1.name, 'TestRegistration') @@ -298,6 +312,100 @@ class TestEventData(TestEventCommon): self.assertEqual(event.seats_expected, 7) +class TestEventRegistrationData(TestEventCommon): + + @users('user_eventmanager') + def test_registration_partner_sync(self): + """ Test registration computed fields about partner """ + test_email = '"Nibbler In Space" <nibbler@futurama.example.com>' + test_phone = '0456001122' + + event = self.env['event.event'].browse(self.event_0.ids) + customer = self.env['res.partner'].browse(self.event_customer.id) + + # take all from partner + event.write({ + 'registration_ids': [(0, 0, { + 'partner_id': customer.id, + })] + }) + new_reg = event.registration_ids[0] + self.assertEqual(new_reg.partner_id, customer) + self.assertEqual(new_reg.name, customer.name) + self.assertEqual(new_reg.email, customer.email) + self.assertEqual(new_reg.phone, customer.phone) + + # partial update + event.write({ + 'registration_ids': [(0, 0, { + 'partner_id': customer.id, + 'name': 'Nibbler In Space', + 'email': test_email, + })] + }) + new_reg = event.registration_ids.sorted()[0] + self.assertEqual(new_reg.partner_id, customer) + self.assertEqual( + new_reg.name, 'Nibbler In Space', + 'Registration should take user input over computed partner value') + self.assertEqual( + new_reg.email, test_email, + 'Registration should take user input over computed partner value') + # self.assertEqual( + # new_reg.phone, customer.phone, + # 'Registration should take partner value if not user input') + + # already filled information should not be updated + event.write({ + 'registration_ids': [(0, 0, { + 'name': 'Nibbler In Space', + 'phone': test_phone, + })] + }) + new_reg = event.registration_ids.sorted()[0] + self.assertEqual(new_reg.name, 'Nibbler In Space') + self.assertEqual(new_reg.email, False) + self.assertEqual(new_reg.phone, test_phone) + new_reg.write({'partner_id': customer.id}) + self.assertEqual(new_reg.partner_id, customer) + self.assertEqual(new_reg.name, 'Nibbler In Space') + self.assertEqual(new_reg.email, customer.email) + self.assertEqual(new_reg.phone, test_phone) + + @users('user_eventmanager') + def test_registration_partner_sync_company(self): + """ Test synchronization involving companies """ + event = self.env['event.event'].browse(self.event_0.ids) + customer = self.env['res.partner'].browse(self.event_customer.id) + + # create company structure (using sudo as required partner manager group) + company = self.env['res.partner'].sudo().create({ + 'name': 'Customer Company', + 'is_company': True, + 'type': 'other', + }) + customer.sudo().write({'type': 'invoice', 'parent_id': company.id}) + contact = self.env['res.partner'].sudo().create({ + 'name': 'ContactName', + 'parent_id': company.id, + 'type': 'contact', + 'email': 'ContactEmail <contact.email@test.example.com>', + 'phone': '+32456998877', + }) + + # take all from partner + event.write({ + 'registration_ids': [(0, 0, { + 'partner_id': customer.id, + })] + }) + new_reg = event.registration_ids[0] + self.assertEqual(new_reg.partner_id, customer) + self.assertEqual(new_reg.name, contact.name) + self.assertEqual(new_reg.email, contact.email) + self.assertEqual(new_reg.phone, contact.phone) + + class TestEventTicketData(TestEventCommon): def setUp(self): |
