|
3 | 3 | from odoo.addons.test_mail.data.test_mail_data import MAIL_TEMPLATE |
4 | 4 | from odoo.tests import tagged, users |
5 | 5 | from odoo.tools import formataddr, mute_logger |
| 6 | +from odoo.fields import Command |
6 | 7 |
|
7 | 8 |
|
8 | 9 | @tagged('post_install', '-at_install', 'mail_flow', 'mail_tools') |
@@ -209,12 +210,7 @@ def test_task_creation_notifies_author(self): |
209 | 210 | self.assertEqual(task.project_id, self.project_followers) |
210 | 211 | self.assertEqual(task.stage_id, self.project_followers.type_ids[0]) |
211 | 212 | # followers: email cc is added in followers at creation time, aka only recognized partners |
212 | | - if not test_user: |
213 | | - self.assertEqual(task.message_partner_ids, internal_followers + self.partner_1 + self.partner_2, |
214 | | - 'Note that author is not added by mailgateway, as he is external' |
215 | | - 'But project subscribe "current_partner" at create time.') |
216 | | - else: |
217 | | - self.assertEqual(task.message_partner_ids, internal_followers + author + self.partner_1 + self.partner_2) |
| 213 | + self.assertEqual(task.message_partner_ids, internal_followers + author + self.partner_1 + self.partner_2) |
218 | 214 | # messages |
219 | 215 | self.assertEqual(len(task.message_ids), 2) |
220 | 216 | # first message: incoming email: sent to email followers |
@@ -349,10 +345,7 @@ def test_task_creation_notifies_author(self): |
349 | 345 | subject=f'Re: {task.name}', |
350 | 346 | subtype_id=self.env.ref('mail.mt_comment').id, |
351 | 347 | ) |
352 | | - if not test_user: |
353 | | - self.assertEqual(task.message_partner_ids, internal_followers + self.partner_1 + self.partner_2) |
354 | | - else: |
355 | | - self.assertEqual(task.message_partner_ids, internal_followers + author + self.partner_1 + self.partner_2) |
| 348 | + self.assertEqual(task.message_partner_ids, internal_followers + author + self.partner_1 + self.partner_2) |
356 | 349 |
|
357 | 350 | external_partners = self.partner_1 + self.partner_2 + new_partner_cc + new_partner_customer |
358 | 351 | self.assertMailNotifications( |
@@ -422,16 +415,10 @@ def test_task_creation_notifies_author(self): |
422 | 415 | '"Valid Poilvache" <valid.other@gmail.com>', |
423 | 416 | 'Updated with new Cc') |
424 | 417 | self.assertEqual(len(task.message_ids), 4, 'Incoming email + acknowledgement + chatter reply + customer reply') |
425 | | - if not test_user: |
426 | | - self.assertEqual( |
427 | | - task.message_partner_ids, |
428 | | - internal_followers + self.partner_1 + self.partner_2 + self.partner_3 + new_partner_cc + new_partner_customer, |
429 | | - 'Project adds recognized recipients as followers') |
430 | | - else: |
431 | | - self.assertEqual( |
432 | | - task.message_partner_ids, |
433 | | - internal_followers + author + self.partner_1 + self.partner_2 + self.partner_3 + new_partner_cc + new_partner_customer, |
434 | | - 'Project adds recognized recipients as followers') |
| 418 | + self.assertEqual( |
| 419 | + task.message_partner_ids, |
| 420 | + internal_followers + author + self.partner_1 + self.partner_2 + self.partner_3 + new_partner_cc + new_partner_customer, |
| 421 | + 'Project adds recognized recipients as followers') |
435 | 422 |
|
436 | 423 | self.assertMailNotifications( |
437 | 424 | task.message_ids[0], |
@@ -542,3 +529,28 @@ def test_task_notification_on_user_ids_update(self): |
542 | 529 | self.flush_tracking() |
543 | 530 | # check that no mail was received for the assignee of the task |
544 | 531 | self.assertNotSentEmail(self.user_projectuser.email_formatted) |
| 532 | + |
| 533 | + def test_task_portal_share_adds_followers(self): |
| 534 | + """ Test that sharing a task through the portal share wizard adds recipients as followers. |
| 535 | +
|
| 536 | + Test Cases: |
| 537 | + =========== |
| 538 | + 1) Verify that the portal user is not a follower of the task. |
| 539 | + 2) Create and execute a portal share wizard to share the task with the portal user. |
| 540 | + 3) Verify that the portal user has been added as a follower after sharing. |
| 541 | + """ |
| 542 | + |
| 543 | + self.assertNotIn(self.user_portal.partner_id, self.task_1.message_partner_ids, |
| 544 | + "Portal user's partner should not be a follower initially") |
| 545 | + |
| 546 | + share_wizard = self.env['portal.share'].create({ |
| 547 | + 'res_model': 'project.task', |
| 548 | + 'res_id': self.task_1.id, |
| 549 | + 'partner_ids': [Command.set(self.user_portal.partner_id.ids)] |
| 550 | + }) |
| 551 | + |
| 552 | + with self.mock_mail_gateway(): |
| 553 | + share_wizard.action_send_mail() |
| 554 | + |
| 555 | + self.assertIn(self.user_portal.partner_id, self.task_1.message_partner_ids, |
| 556 | + "Portal user's partner should be added as a follower after sharing") |
0 commit comments