Esempio n. 1
0
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
            ))
Esempio n. 2
0
    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
                )
            )
Esempio n. 3
0
 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."])
Esempio n. 4
0
    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'
Esempio n. 5
0
    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'
Esempio n. 6
0
    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)
Esempio n. 9
0
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
Esempio n. 10
0
def _to_json(data):
    try:
        content = simplejson.loads(data)
        return content
    except JSONDecodeError:
        raise JSONDecodeError('Error decoding data', data, 0)