mirror of
https://github.com/bringout/oca-ocb-mail.git
synced 2026-04-21 13:42:02 +02:00
41 lines
1.9 KiB
Python
41 lines
1.9 KiB
Python
from odoo.tests.common import JsonRpcException, tagged
|
|
from odoo.tools import mute_logger
|
|
from odoo.addons.base.tests.common import HttpCaseWithUserDemo, HttpCaseWithUserPortal
|
|
from odoo.addons.im_livechat.tests.common import TestImLivechatCommon
|
|
|
|
|
|
@tagged("-at_install", "post_install")
|
|
class TestImLivechatTranscript(TestImLivechatCommon, HttpCaseWithUserDemo, HttpCaseWithUserPortal):
|
|
def test_download_transcript(self):
|
|
data = self.make_jsonrpc_request(
|
|
"/im_livechat/get_session",
|
|
{"channel_id": self.livechat_channel.id},
|
|
)
|
|
res = self.url_open(f"/im_livechat/download_transcript/{data['channel_id']}")
|
|
self.assertEqual(res.status_code, 200)
|
|
self.assertEqual(res.headers["Content-Type"], "application/pdf")
|
|
|
|
def test_download_transcript_non_member(self):
|
|
self.authenticate("demo", "demo")
|
|
data = self.make_jsonrpc_request(
|
|
"/im_livechat/get_session",
|
|
{"channel_id": self.livechat_channel.id},
|
|
)
|
|
chat = self.env["discuss.channel"].browse(data["channel_id"])
|
|
self.authenticate(None, None)
|
|
self.assertFalse(chat.is_member)
|
|
with mute_logger("odoo.http"):
|
|
res = self.url_open(f"/im_livechat/download_transcript/{data['channel_id']}")
|
|
self.assertEqual(res.status_code, 404)
|
|
|
|
def test_email_transcript_portal_user(self):
|
|
self.authenticate(self.user_portal.login, self.user_portal.login)
|
|
data = self.make_jsonrpc_request(
|
|
"/im_livechat/get_session",
|
|
{"channel_id": self.livechat_channel.id},
|
|
)
|
|
with self.assertRaises(JsonRpcException, msg="werkzeug.exceptions.NotFound"):
|
|
self.make_jsonrpc_request(
|
|
"/im_livechat/email_livechat_transcript",
|
|
{"channel_id": data["channel_id"], "email": self.partner_portal.email},
|
|
)
|