def test_invalid_authorized_response(app_rest): """Test login.""" oauth = app_rest.extensions['oauthlib.client'] with app_rest.test_client() as client: # Fake an authorized request # Ensure remote apps have been loaded (due to before first # request) client.get(url_for( 'invenio_oauthclient.rest_login', remote_app='test')) oauth.remote_apps['test'].handle_oauth2_response = MagicMock( side_effect=JSONDecodeError('Expecting value', '', 0) ) state = serializer.dumps({ 'app': 'test', 'sid': _create_identifier(), 'next': None, }) with pytest.raises(JSONDecodeError): client.get(url_for( 'invenio_oauthclient.rest_authorized', remote_app='test', code='test', state=state ))
def test_invalid_authorized_response(self): from simplejson import JSONDecodeError from invenio.modules.oauthclient.client import oauth # Fake an authorized request with self.app.test_client() as c: # Ensure remote apps have been loaded (due to before first # request) c.get(url_for("oauthclient.login", remote_app='test')) oauth.remote_apps['test'].handle_oauth2_response = MagicMock( side_effect=JSONDecodeError('Expecting value', '', 0) ) from invenio.modules.oauthclient.views.client import serializer state = serializer.dumps({ 'app': 'test', 'sid': session.sid, 'next': None, }) self.assertRaises( JSONDecodeError, c.get, url_for( "oauthclient.authorized", remote_app='test', code='test', state=state ) )
def test_process_resp_failure_error(self, mock_requests): mock_requests.get().json.side_effect = JSONDecodeError("...", "{}\na\nb", 7) r = mock_requests.get(API_URL + "/departments") with self.app.test_request_context("/departments"): self.assertEqual( process_resp_failure(r).location, redirect(request.url).location ) self.assertEqual(get_flashed_messages(), ["A server error occurred."])
def should_raise_exception_on_json_decode_error(self): self.requests.get.return_value = mock.MagicMock( status_code=httplib.OK, json=mock.MagicMock(side_effect=JSONDecodeError('foo', 'bar', 0))) with pytest.raises(EchoNestError) as e: get_artist_genres('foo') assert e.value.message == 'Unable to decode response data to dict'
def should_raise_error_invalid_json(self): self.requests.get.return_value = mock.MagicMock( status_code=httplib.OK, json=mock.MagicMock(side_effect=JSONDecodeError('foo', 'bar', 0))) field = SpotifyURI() with pytest.raises(ValidationError) as e: field.validate('spotify:track:foo') assert e.value.message == 'Unable to read Spotify Data'
def test_get_metadata_by_query_with_error(self, mock_oauth_client): """ get_metadata_by_query should return None when a call to discovery endpoint fails. """ mock_oauth_client.return_value.post.side_effect = JSONDecodeError( 'error', '{}', 0) catalog_query = CatalogQueryFactory() client = DiscoveryApiClient() with self.assertRaises(JSONDecodeError): client.get_metadata_by_query(catalog_query) mock_oauth_client.return_value.post.assert_called_once()
def test_get_courses_with_error(self, mock_oauth_client): """ get_courses should return any courses that may have already been retrieved when the error occurs. """ mock_oauth_client.return_value.get.side_effect = JSONDecodeError('error', '{}', 0) query_params = {'ordering': 'key'} client = DiscoveryApiClient() actual_response = client.get_courses(query_params) mock_oauth_client.return_value.get.assert_called_once() expected_response = [] self.assertEqual(actual_response, expected_response)
def test_get_metadata_by_query_with_error(self, mock_oauth_client): """ get_metadata_by_query should return None when a call to discovery endpoint fails. """ mock_oauth_client.return_value.post.side_effect = JSONDecodeError( 'error', '{}', 0) catalog_query = CatalogQueryFactory() query_params = {'exclude_expired_course_run': True} client = DiscoveryApiClient() actual_response = client.get_metadata_by_query(catalog_query, query_params) mock_oauth_client.return_value.post.assert_called_once() expected_response = None self.assertEqual(actual_response, expected_response)
def test_main_marathon_jsondecode_error(): with patch( 'paasta_tools.marathon_tools.load_marathon_config', autospec=True, ) as load_marathon_config_patch, patch( 'paasta_tools.paasta_metastatus.load_chronos_config', autospec=True, ), patch( 'paasta_tools.paasta_metastatus.get_mesos_master', autospec=True, ) as get_mesos_master, patch( 'paasta_tools.metrics.metastatus_lib.get_mesos_state_status', autospec=True, return_value=([('fake_output', True)]), ) as get_mesos_state_status_patch, patch( 'paasta_tools.metrics.metastatus_lib.get_mesos_resource_utilization_health', autospec=True, ) as get_mesos_resource_utilization_health_patch, patch( 'paasta_tools.metrics.metastatus_lib.get_marathon_client', autospec=True, ) as get_marathon_client_patch, patch( 'paasta_tools.metrics.metastatus_lib.get_marathon_status', autospec=True, ) as get_marathon_status_patch: fake_master = Mock(autospace=True) fake_master.metrics_snapshot.return_value = { 'master/frameworks_active': 2, 'master/frameworks_inactive': 0, 'master/frameworks_connected': 2, 'master/frameworks_disconnected': 0, } fake_master.state.return_value = {} get_mesos_master.return_value = fake_master load_marathon_config_patch.return_value = {"url": "http://foo"} get_marathon_client_patch.return_value = Mock() get_marathon_status_patch.side_effect = JSONDecodeError("y", "x", 100) get_mesos_state_status_patch.return_value = [] get_mesos_resource_utilization_health_patch.return_value = [] with raises(SystemExit) as excinfo: paasta_metastatus.main(()) assert excinfo.value.code == 2
def _to_json(data): try: content = simplejson.loads(data) return content except JSONDecodeError: raise JSONDecodeError('Error decoding data', data, 0)