Files
enterprise-addons/voip/tests/test_voip_controller.py
T

36 lines
1.4 KiB
Python

from http import HTTPStatus
from odoo import http
from odoo.tests import tagged
from odoo.tests.common import HttpCase, new_test_user
@tagged("-at_install", "post_install")
class TestVoipController(HttpCase):
def test_recording_can_only_be_uploaded_by_owner_of_the_call(self):
rightful_record_owner = new_test_user(self.env, login="based VoIP user 😤")
call = self.env["voip.call"].create({
"phone_number": "0491 577 644",
"user_id": rightful_record_owner.id,
})
evil_uploader = new_test_user(self.env, login="evil uploader 👺")
self.authenticate(evil_uploader.login, evil_uploader.password)
response = self.url_open(
f"/voip/upload_recording/{call.id}",
data={"csrf_token": http.Request.csrf_token(self)},
files={"ufile": ("recording.ogg", b"OggS", "audio/ogg")},
method="POST",
)
self.assertEqual(response.status_code, HTTPStatus.FORBIDDEN)
self.authenticate(rightful_record_owner.login, rightful_record_owner.password)
response = self.url_open(
f"/voip/upload_recording/{call.id}",
data={"csrf_token": http.Request.csrf_token(self)},
files={"ufile": ("recording.ogg", b"OggS", "audio/ogg")},
method="POST",
)
self.assertEqual(response.status_code, HTTPStatus.OK)