mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +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
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class TestVideoCall(ZulipTestCase):
 | 
			
		||||
class ZoomVideoCallTest(ZulipTestCase):
 | 
			
		||||
    @override
 | 
			
		||||
    def setUp(self) -> None:
 | 
			
		||||
        super().setUp()
 | 
			
		||||
        self.user = self.example_user("hamlet")
 | 
			
		||||
        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):
 | 
			
		||||
            response = self.client_get("/calls/zoom/register")
 | 
			
		||||
            self.assert_json_error(
 | 
			
		||||
@@ -44,7 +25,7 @@ class TestVideoCall(ZulipTestCase):
 | 
			
		||||
                "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")
 | 
			
		||||
        self.assertEqual(response.status_code, 302)
 | 
			
		||||
 | 
			
		||||
@@ -141,7 +122,7 @@ class TestVideoCall(ZulipTestCase):
 | 
			
		||||
        response = self.client_post("/json/calls/zoom/create")
 | 
			
		||||
        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(
 | 
			
		||||
            "/calls/zoom/complete",
 | 
			
		||||
            {"code": "code", "state": '{"realm":"zephyr","sid":"somesid"}'},
 | 
			
		||||
@@ -150,7 +131,7 @@ class TestVideoCall(ZulipTestCase):
 | 
			
		||||
        self.assertIn("http://zephyr.testserver/", 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(
 | 
			
		||||
            "/calls/zoom/complete",
 | 
			
		||||
            {"code": "code", "state": '{"realm":"zulip","sid":"bad"}'},
 | 
			
		||||
@@ -158,7 +139,7 @@ class TestVideoCall(ZulipTestCase):
 | 
			
		||||
        self.assert_json_error(response, "Invalid Zoom session identifier")
 | 
			
		||||
 | 
			
		||||
    @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)
 | 
			
		||||
 | 
			
		||||
        response = self.client_get(
 | 
			
		||||
@@ -168,7 +149,7 @@ class TestVideoCall(ZulipTestCase):
 | 
			
		||||
        self.assert_json_error(response, "Invalid Zoom credentials")
 | 
			
		||||
 | 
			
		||||
    @responses.activate
 | 
			
		||||
    def test_create_video_refresh_error(self) -> None:
 | 
			
		||||
    def test_create_zoom_refresh_error(self) -> None:
 | 
			
		||||
        responses.add(
 | 
			
		||||
            responses.POST,
 | 
			
		||||
            "https://zoom.us/oauth/token",
 | 
			
		||||
@@ -187,7 +168,7 @@ class TestVideoCall(ZulipTestCase):
 | 
			
		||||
        self.assert_json_error(response, "Invalid Zoom access token")
 | 
			
		||||
 | 
			
		||||
    @responses.activate
 | 
			
		||||
    def test_create_video_request_error(self) -> None:
 | 
			
		||||
    def test_create_zoom_request_error(self) -> None:
 | 
			
		||||
        responses.add(
 | 
			
		||||
            responses.POST,
 | 
			
		||||
            "https://zoom.us/oauth/token",
 | 
			
		||||
@@ -239,6 +220,32 @@ class TestVideoCall(ZulipTestCase):
 | 
			
		||||
        )
 | 
			
		||||
        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:
 | 
			
		||||
        with (
 | 
			
		||||
            mock.patch("zerver.views.video_calls.random.randint", return_value="1"),
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user