def test_get_room_status_error(caplog, httpretty, room_name, error): RavemPlugin.settings.set("api_endpoint", RAVEM_TEST_API_ENDPOINT) httpretty.register_uri( httpretty.GET, RAVEM_TEST_API_ENDPOINT + "rooms/details", status=200, content_type="application/json", body=json.dumps({"error": error}), ) room_verbose_name = "room_verbose_name" with pytest.raises(RavemException) as excinfo: get_room_status(room_name, room_verbose_name) assert str( excinfo.value ) == f"Failed to get status of room {room_verbose_name} with error: {error}" log = extract_logs(caplog, one=True, name="indico.plugin.ravem") assert log.message == f"Failed to get status of room {room_verbose_name} with error: {error}" assert len(httpretty.httpretty.latest_requests) == 1 request = httpretty.last_request() assert request.path.startswith(RAVEM_TEST_PATH + "rooms/details") assert request.querystring == { "where": ["room_name"], "value": [room_name] }
def test_get_room_status(httpretty, room_name, status, connected, endpoint, data): RavemPlugin.settings.set('api_endpoint', RAVEM_TEST_API_ENDPOINT) httpretty.register_uri( httpretty.GET, RAVEM_TEST_API_ENDPOINT + 'getstatus', status=200, content_type='application/json', body=json.dumps({ 'result': { 'name': room_name, 'vc_endpoint_legacy_hostname': data.get('legacy_hostname'), 'vc_endpoint_vidyo_username': data.get('vidyo_username'), 'vc_endpoint_legacy_ip': data.get('legacy_ip'), 'vc_endpoint_vidyo_extension': data.get('vidyo_extension'), 'services': [{ 'status': status, 'event_name': data.get('event_name'), 'name': 'videoconference', 'event_type': data.get('event_type') }], 'common_name': data.get('common_name') }}) ) status = get_room_status(room_name) assert len(httpretty.httpretty.latest_requests) == 1 request = httpretty.last_request() assert request.path.startswith(RAVEM_TEST_PATH + 'getstatus') assert request.querystring == {'service_name': ['videoconference'], 'where': ['room_name'], 'value': [room_name]} assert status['vc_room_name'] == data.get('event_name') assert status['connected'] == connected assert status['service_type'] == data.get('event_type') assert status['room_endpoint'] == endpoint()
def _process(self): try: response = get_room_status(self.room_name, room_special_name=self.room_special_name) response['success'] = True except RavemException as err: response = {'success': False, 'reason': 'operation-failed', 'message': err.message} return jsonify(response)
def test_get_room_status_service_not_found(caplog, httpretty, room_name): RavemPlugin.settings.set('api_endpoint', RAVEM_TEST_API_ENDPOINT) httpretty.register_uri( httpretty.GET, RAVEM_TEST_API_ENDPOINT + 'getstatus', status=200, content_type='application/json', body=json.dumps({'result': 'Service not found'}) ) with pytest.raises(RavemException) as excinfo: get_room_status(room_name) assert excinfo.value.message == "Vidyo is not supported in the room {0}".format(room_name) log = extract_logs(caplog, one=True, name='indico.plugin.ravem') assert log.message == "Vidyo is not supported in the room {0}".format(room_name) assert len(httpretty.httpretty.latest_requests) == 1 request = httpretty.last_request() assert request.path.startswith(RAVEM_TEST_PATH + 'getstatus') assert request.querystring == {'service_name': ['videoconference'], 'where': ['room_name'], 'value': [room_name]}
def _process(self): if self.event_vc_room.vc_room.type == 'vidyo': return { 'success': False, 'reason': 'unsupported', 'message': '<a target="_blank" href="https://cern.ch/go/6SNm">' 'Vidyo is no longer supported</a>' } try: response = get_room_status(self.room.name, self.room.verbose_name) response['success'] = True except RavemException as err: response = {'success': False, 'reason': err.reason, 'message': str(err)} return jsonify(response)
def test_get_room_status(httpretty, room_name, service_type, connected, data): RavemPlugin.settings.set("api_endpoint", RAVEM_TEST_API_ENDPOINT) service_api = get_api(service_type) vc_room_id = service_api.get_room_id(data) httpretty.register_uri( httpretty.GET, RAVEM_TEST_API_ENDPOINT + "rooms/details", status=200, content_type="application/json", body=json.dumps({ "roomName": room_name, "deviceType": service_type, "services": [{ "status": connected, "eventName": data["id"], "name": "videoconference", }], }), ) status = get_room_status(room_name) assert len(httpretty.httpretty.latest_requests) == 1 request = httpretty.last_request() assert request.path.startswith(RAVEM_TEST_PATH + "rooms/details") assert request.querystring == { "where": ["room_name"], "value": [room_name] } assert status["room_name"] == room_name assert status["connected"] == connected assert status["vc_room_id"] == vc_room_id assert status["service_type"] == service_type