mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	Apparently, zoom's API will (sometimes?) return a 201 (not 200) created in response to the API request to create a call. We fix this by using the proper requests check for whether or not the request failed.
		
			
				
	
	
		
			46 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
import mock
 | 
						|
from zerver.lib.test_classes import ZulipTestCase
 | 
						|
from typing import Dict
 | 
						|
 | 
						|
class TestFeedbackBot(ZulipTestCase):
 | 
						|
    def setUp(self) -> None:
 | 
						|
        user_profile = self.example_user('hamlet')
 | 
						|
        self.login(user_profile.email, realm=user_profile.realm)
 | 
						|
 | 
						|
    def test_create_video_call_success(self) -> None:
 | 
						|
        with mock.patch('zerver.lib.actions.request_zoom_video_call_url', return_value={'join_url': 'example.com'}):
 | 
						|
            result = self.client_get("/json/calls/create")
 | 
						|
            self.assert_json_success(result)
 | 
						|
            self.assertEqual(200, result.status_code)
 | 
						|
            content = result.json()
 | 
						|
            self.assertEqual(content['zoom_url'], 'example.com')
 | 
						|
 | 
						|
    def test_create_video_call_failure(self) -> None:
 | 
						|
        with mock.patch('zerver.lib.actions.request_zoom_video_call_url', return_value=None):
 | 
						|
            result = self.client_get("/json/calls/create")
 | 
						|
            self.assert_json_success(result)
 | 
						|
            self.assertEqual(200, result.status_code)
 | 
						|
            content = result.json()
 | 
						|
            self.assertEqual(content['zoom_url'], '')
 | 
						|
 | 
						|
    def test_create_video_request_success(self) -> None:
 | 
						|
        class MockResponse:
 | 
						|
            def __init__(self) -> None:
 | 
						|
                self.status_code = 200
 | 
						|
 | 
						|
            def json(self) -> Dict[str, str]:
 | 
						|
                return {"join_url": "example.com"}
 | 
						|
 | 
						|
            def raise_for_status(self) -> None:
 | 
						|
                return None
 | 
						|
 | 
						|
        with mock.patch('requests.post', return_value=MockResponse()):
 | 
						|
            result = self.client_get("/json/calls/create")
 | 
						|
            self.assert_json_success(result)
 | 
						|
            self.assertEqual(result.status_code, 200)
 | 
						|
 | 
						|
    def test_create_video_request(self) -> None:
 | 
						|
        with mock.patch('requests.post'):
 | 
						|
            result = self.client_get("/json/calls/create")
 | 
						|
            self.assert_json_success(result)
 |