35 lines
1.3 KiB
Python
35 lines
1.3 KiB
Python
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from re import search
|
|
|
|
from odoo.tests import HttpCase
|
|
|
|
from odoo.addons.mail.controllers.thread import ThreadController
|
|
from odoo.addons.project.tests.test_project_sharing import TestProjectSharingCommon
|
|
from odoo.addons.website.tools import MockRequest
|
|
|
|
|
|
class TestProjectPortalAccess(TestProjectSharingCommon, HttpCase):
|
|
def test_post_chatter_as_portal_user(self):
|
|
self.project_no_collabo.privacy_visibility = 'portal'
|
|
message = self.get_project_share_link()
|
|
share_link = str(message.body.split('href="')[1].split('">')[0])
|
|
match = search(r"access_token=([^&]+)&pid=([^&]+)&hash=([^&]*)", share_link)
|
|
access_token, pid, _hash = match.groups()
|
|
|
|
with self.with_user('chell'), MockRequest(self.env, path=share_link):
|
|
ThreadController().mail_message_post(
|
|
thread_model='project.task',
|
|
thread_id=self.task_no_collabo.id,
|
|
post_data={'body': '(-b ±√[b²-4ac]) / 2a'},
|
|
token=access_token,
|
|
pid=pid,
|
|
hash=_hash,
|
|
)
|
|
|
|
self.assertTrue(
|
|
self.env['mail.message'].sudo().search([
|
|
('author_id', '=', self.user_portal.partner_id.id),
|
|
])
|
|
)
|