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(views_fixture): """Test login.""" app = views_fixture oauth = app.extensions['oauthlib.client'] with app.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.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.authorized', remote_app='test', code='test', state=state ))
def get_state(app='test'): """Get state.""" return serializer.dumps({ 'app': app, 'sid': _create_identifier(), 'next': None, })
def test_authorized(base_app, params): """Test login.""" handled = {} def test_authorized_handler(resp, remote, *args, **kwargs): """Save configuration.""" handled['resp'] = resp handled['remote'] = remote handled['args'] = args handled['kwargs'] = kwargs return 'TEST' def test_invalid_authorized_handler(resp, remote, *args, **kwargs): """Set wrong configuration.""" handled['resp'] = 1 handled['remote'] = 1 handled['args'] = 1 handled['kwargs'] = 1 base_app.config['OAUTHCLIENT_REST_REMOTE_APPS'].update( dict( test=dict( authorized_handler=test_authorized_handler, params=params('testid'), title='MyLinkedTestAccount', ), test_invalid=dict( authorized_handler=test_invalid_authorized_handler, params=params('test_invalidid'), title='Test Invalid', ), full=dict( params=params('fullid'), title='Full', ), )) FlaskOAuth(base_app) InvenioOAuthClientREST(base_app) base_app.register_blueprint(rest_blueprint) with base_app.test_client() as client: # Ensure remote apps have been loaded (due to before first # request) client.get(url_for( 'invenio_oauthclient.rest_login', remote_app='test')) mock_response(base_app.extensions['oauthlib.client'], 'test') mock_response(base_app.extensions['oauthlib.client'], 'test_invalid') from invenio_oauthclient.views.client import serializer state = serializer.dumps({ 'app': 'test', 'sid': _create_identifier(), 'next': None, }) resp = client.get( url_for( 'invenio_oauthclient.rest_authorized', remote_app='test', code='test', state=state ) ) assert resp.data == b'TEST' assert handled['remote'].name == 'test' assert not handled['args'] assert not handled['kwargs'] assert handled['resp']['access_token'] == 'test_access_token' state = serializer.dumps({ 'app': 'test_invalid', 'sid': _create_identifier(), 'next': None, }) # handler should return something # Flask>1.0 is throwing TypeError and Flask<1.0 ValueError with pytest.raises((ValueError, TypeError)): client.get(url_for( 'invenio_oauthclient.rest_authorized', remote_app='test_invalid', code='test', state=state, ))
def test_authorized(base_app, params): """Test login.""" app = base_app handled = {} def test_authorized_handler(resp, remote, *args, **kwargs): """Save configuration.""" handled['resp'] = resp handled['remote'] = remote handled['args'] = args handled['kwargs'] = kwargs return 'TEST' def test_invalid_authorized_handler(resp, remote, *args, **kwargs): """Set wrong configuration.""" handled['resp'] = 1 handled['remote'] = 1 handled['args'] = 1 handled['kwargs'] = 1 base_app.config['OAUTHCLIENT_REMOTE_APPS'].update( dict( test=dict( authorized_handler=test_authorized_handler, params=params('testid'), title='MyLinkedTestAccount', ), test_invalid=dict( authorized_handler=test_invalid_authorized_handler, params=params('test_invalidid'), title='Test Invalid', ), full=dict( params=params('fullid'), title='Full', ), ) ) FlaskOAuth(app) InvenioOAuthClient(app) base_app.register_blueprint(blueprint_client) base_app.register_blueprint(blueprint_settings) with app.test_client() as client: # Ensure remote apps have been loaded (due to before first # request) client.get(url_for('invenio_oauthclient.login', remote_app='test')) mock_response(app.extensions['oauthlib.client'], 'test') mock_response(app.extensions['oauthlib.client'], 'test_invalid') from invenio_oauthclient.views.client import serializer state = serializer.dumps({ 'app': 'test', 'sid': _create_identifier(), 'next': None, }) resp = client.get( url_for( 'invenio_oauthclient.authorized', remote_app='test', code='test', state=state ) ) assert resp.data == b'TEST' assert handled['remote'].name == 'test' assert not handled['args'] assert not handled['kwargs'] assert handled['resp']['access_token'] == 'test_access_token' state = serializer.dumps({ 'app': 'test_invalid', 'sid': _create_identifier(), 'next': None, }) # handler should be return something with pytest.raises(ValueError): client.get(url_for( 'invenio_oauthclient.authorized', remote_app='test_invalid', code='test', state=state, ))
def _get_state(): return serializer.dumps({ 'app': 'github', 'sid': _create_identifier(), 'next': None, })
def get_state(app="test"): """Get state.""" return serializer.dumps({"app": app, "sid": _create_identifier(), "next": None})
def _get_state(): return serializer.dumps({'app': 'github', 'sid': _create_identifier(), 'next': None, })