mirror of
https://github.com/zulip/zulip.git
synced 2025-11-06 06:53:25 +00:00
tests: Create subclasses for create video call tests.
Separates tests for Zoom and Big Blue Button video call intgrations into separate sublcasses, ZoomVideoCallTest and BigBlueButtonVideoCallTest respectively.
This commit is contained in:
committed by
Tim Abbott
parent
f13a1a48f7
commit
cb68d11ee3
@@ -10,33 +10,14 @@ from zerver.lib.test_classes import ZulipTestCase
|
|||||||
from zerver.lib.url_encoding import append_url_query_string
|
from zerver.lib.url_encoding import append_url_query_string
|
||||||
|
|
||||||
|
|
||||||
class TestVideoCall(ZulipTestCase):
|
class ZoomVideoCallTest(ZulipTestCase):
|
||||||
@override
|
@override
|
||||||
def setUp(self) -> None:
|
def setUp(self) -> None:
|
||||||
super().setUp()
|
super().setUp()
|
||||||
self.user = self.example_user("hamlet")
|
self.user = self.example_user("hamlet")
|
||||||
self.login_user(self.user)
|
self.login_user(self.user)
|
||||||
# Signing for bbb
|
|
||||||
self.signer = Signer()
|
|
||||||
self.signed_bbb_a_object = self.signer.sign_object(
|
|
||||||
{
|
|
||||||
"meeting_id": "a",
|
|
||||||
"name": "a",
|
|
||||||
"lock_settings_disable_cam": True,
|
|
||||||
"moderator": self.user.id,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
# For testing viewer role (different creator / moderator from self)
|
|
||||||
self.signed_bbb_a_object_different_creator = self.signer.sign_object(
|
|
||||||
{
|
|
||||||
"meeting_id": "a",
|
|
||||||
"name": "a",
|
|
||||||
"lock_settings_disable_cam": True,
|
|
||||||
"moderator": self.example_user("cordelia").id,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
def test_register_video_request_no_settings(self) -> None:
|
def test_register_zoom_request_no_settings(self) -> None:
|
||||||
with self.settings(VIDEO_ZOOM_CLIENT_ID=None):
|
with self.settings(VIDEO_ZOOM_CLIENT_ID=None):
|
||||||
response = self.client_get("/calls/zoom/register")
|
response = self.client_get("/calls/zoom/register")
|
||||||
self.assert_json_error(
|
self.assert_json_error(
|
||||||
@@ -44,7 +25,7 @@ class TestVideoCall(ZulipTestCase):
|
|||||||
"Zoom credentials have not been configured",
|
"Zoom credentials have not been configured",
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_register_video_request(self) -> None:
|
def test_register_zoom_request(self) -> None:
|
||||||
response = self.client_get("/calls/zoom/register")
|
response = self.client_get("/calls/zoom/register")
|
||||||
self.assertEqual(response.status_code, 302)
|
self.assertEqual(response.status_code, 302)
|
||||||
|
|
||||||
@@ -141,7 +122,7 @@ class TestVideoCall(ZulipTestCase):
|
|||||||
response = self.client_post("/json/calls/zoom/create")
|
response = self.client_post("/json/calls/zoom/create")
|
||||||
self.assert_json_error(response, "Invalid Zoom access token")
|
self.assert_json_error(response, "Invalid Zoom access token")
|
||||||
|
|
||||||
def test_create_video_realm_redirect(self) -> None:
|
def test_create_zoom_realm_redirect(self) -> None:
|
||||||
response = self.client_get(
|
response = self.client_get(
|
||||||
"/calls/zoom/complete",
|
"/calls/zoom/complete",
|
||||||
{"code": "code", "state": '{"realm":"zephyr","sid":"somesid"}'},
|
{"code": "code", "state": '{"realm":"zephyr","sid":"somesid"}'},
|
||||||
@@ -150,7 +131,7 @@ class TestVideoCall(ZulipTestCase):
|
|||||||
self.assertIn("http://zephyr.testserver/", response["Location"])
|
self.assertIn("http://zephyr.testserver/", response["Location"])
|
||||||
self.assertIn("somesid", response["Location"])
|
self.assertIn("somesid", response["Location"])
|
||||||
|
|
||||||
def test_create_video_sid_error(self) -> None:
|
def test_create_zoom_sid_error(self) -> None:
|
||||||
response = self.client_get(
|
response = self.client_get(
|
||||||
"/calls/zoom/complete",
|
"/calls/zoom/complete",
|
||||||
{"code": "code", "state": '{"realm":"zulip","sid":"bad"}'},
|
{"code": "code", "state": '{"realm":"zulip","sid":"bad"}'},
|
||||||
@@ -158,7 +139,7 @@ class TestVideoCall(ZulipTestCase):
|
|||||||
self.assert_json_error(response, "Invalid Zoom session identifier")
|
self.assert_json_error(response, "Invalid Zoom session identifier")
|
||||||
|
|
||||||
@responses.activate
|
@responses.activate
|
||||||
def test_create_video_credential_error(self) -> None:
|
def test_create_zoom_credential_error(self) -> None:
|
||||||
responses.add(responses.POST, "https://zoom.us/oauth/token", status=400)
|
responses.add(responses.POST, "https://zoom.us/oauth/token", status=400)
|
||||||
|
|
||||||
response = self.client_get(
|
response = self.client_get(
|
||||||
@@ -168,7 +149,7 @@ class TestVideoCall(ZulipTestCase):
|
|||||||
self.assert_json_error(response, "Invalid Zoom credentials")
|
self.assert_json_error(response, "Invalid Zoom credentials")
|
||||||
|
|
||||||
@responses.activate
|
@responses.activate
|
||||||
def test_create_video_refresh_error(self) -> None:
|
def test_create_zoom_refresh_error(self) -> None:
|
||||||
responses.add(
|
responses.add(
|
||||||
responses.POST,
|
responses.POST,
|
||||||
"https://zoom.us/oauth/token",
|
"https://zoom.us/oauth/token",
|
||||||
@@ -187,7 +168,7 @@ class TestVideoCall(ZulipTestCase):
|
|||||||
self.assert_json_error(response, "Invalid Zoom access token")
|
self.assert_json_error(response, "Invalid Zoom access token")
|
||||||
|
|
||||||
@responses.activate
|
@responses.activate
|
||||||
def test_create_video_request_error(self) -> None:
|
def test_create_zoom_request_error(self) -> None:
|
||||||
responses.add(
|
responses.add(
|
||||||
responses.POST,
|
responses.POST,
|
||||||
"https://zoom.us/oauth/token",
|
"https://zoom.us/oauth/token",
|
||||||
@@ -239,6 +220,32 @@ class TestVideoCall(ZulipTestCase):
|
|||||||
)
|
)
|
||||||
self.assert_json_success(response)
|
self.assert_json_success(response)
|
||||||
|
|
||||||
|
|
||||||
|
class BigBlueButtonVideoCallTest(ZulipTestCase):
|
||||||
|
@override
|
||||||
|
def setUp(self) -> None:
|
||||||
|
super().setUp()
|
||||||
|
self.user = self.example_user("hamlet")
|
||||||
|
self.login_user(self.user)
|
||||||
|
self.signer = Signer()
|
||||||
|
self.signed_bbb_a_object = self.signer.sign_object(
|
||||||
|
{
|
||||||
|
"meeting_id": "a",
|
||||||
|
"name": "a",
|
||||||
|
"lock_settings_disable_cam": True,
|
||||||
|
"moderator": self.user.id,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
# For testing viewer role (different creator / moderator from self)
|
||||||
|
self.signed_bbb_a_object_different_creator = self.signer.sign_object(
|
||||||
|
{
|
||||||
|
"meeting_id": "a",
|
||||||
|
"name": "a",
|
||||||
|
"lock_settings_disable_cam": True,
|
||||||
|
"moderator": self.example_user("cordelia").id,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
def test_create_bigbluebutton_link(self) -> None:
|
def test_create_bigbluebutton_link(self) -> None:
|
||||||
with (
|
with (
|
||||||
mock.patch("zerver.views.video_calls.random.randint", return_value="1"),
|
mock.patch("zerver.views.video_calls.random.randint", return_value="1"),
|
||||||
|
|||||||
Reference in New Issue
Block a user