Exemplo n.º 1
0
def test_launch_with_none_or_empty_user_id_value(
        make_lti11_basic_launch_request_args):
    """
    Does the launch request work with an empty or None user_id value?
    """
    oauth_consumer_key = 'my_consumer_key'
    oauth_consumer_secret = 'my_shared_secret'
    launch_url = 'http://jupyterhub/hub/lti/launch'
    headers = {'Content-Type': 'application/x-www-form-urlencoded'}

    args = make_lti11_basic_launch_request_args(
        oauth_consumer_key,
        oauth_consumer_secret,
    )

    validator = LTI11LaunchValidator(
        {oauth_consumer_key: oauth_consumer_secret})

    with pytest.raises(HTTPError):
        args['user_id'] = None
        validator.validate_launch_request(launch_url, headers, args)

    with pytest.raises(HTTPError):
        args['user_id'] = ''
        validator.validate_launch_request(launch_url, headers, args)
def test_basic_lti11_launch_request():
    """
    Does a standard launch request work?
    """
    oauth_consumer_key = 'my_consumer_key'
    oauth_consumer_secret = 'my_shared_secret'
    launch_url = 'http://jupyterhub/hub/lti/launch'
    headers = {'Content-Type': 'application/x-www-form-urlencoded'}

    args = factory_lti11_basic_launch_args(
        oauth_consumer_key,
        oauth_consumer_secret,
    )

    validator = LTI11LaunchValidator(
        {oauth_consumer_key: oauth_consumer_secret})

    assert validator.validate_launch_request(launch_url, headers, args)
Exemplo n.º 3
0
def test_launch_with_same_oauth_nonce_different_oauth_timestamp():
    """
    Does the launch request pass with when using a different timestamp with the
    same nonce?
    """
    oauth_consumer_key = 'my_consumer_key'
    oauth_consumer_secret = 'my_shared_secret'
    launch_url = 'http://jupyterhub/hub/lti/launch'
    headers = {'Content-Type': 'application/x-www-form-urlencoded'}

    args = mock_lti11_args(oauth_consumer_key, oauth_consumer_secret)

    validator = LTI11LaunchValidator(
        {oauth_consumer_key: oauth_consumer_secret})

    with pytest.raises(HTTPError):
        args['oauth_timestamp'] = '0123456789'
        validator.validate_launch_request(launch_url, headers, args)
Exemplo n.º 4
0
def test_launch_with_missing_oauth_signature_method_key():
    """
    Does the launch request work with a missing oauth_signature_method key?
    """
    oauth_consumer_key = 'my_consumer_key'
    oauth_consumer_secret = 'my_shared_secret'
    launch_url = 'http://jupyterhub/hub/lti/launch'
    headers = {'Content-Type': 'application/x-www-form-urlencoded'}

    args = mock_lti11_args(oauth_consumer_key, oauth_consumer_secret)

    del args['oauth_signature_method']

    validator = LTI11LaunchValidator(
        {oauth_consumer_key: oauth_consumer_secret})

    with pytest.raises(HTTPError):
        validator.validate_launch_request(launch_url, headers, args)
def test_unregistered_shared_secret():
    """
    Does the launch request work with a shared secret that does not match?
    """
    oauth_consumer_key = 'my_consumer_key'
    oauth_consumer_secret = 'my_shared_secret'
    launch_url = 'http://jupyterhub/hub/lti/launch'
    headers = {'Content-Type': 'application/x-www-form-urlencoded'}

    args = factory_lti11_basic_launch_args(
        oauth_consumer_key,
        oauth_consumer_secret,
    )

    validator = LTI11LaunchValidator(
        {oauth_consumer_key: 'my_other_shared_secret'})

    with pytest.raises(HTTPError):
        validator.validate_launch_request(launch_url, headers, args)
def test_launch_with_fake_oauth_consumer_key_value():
    """
    Does the launch request work when the consumer_key isn't correct?
    """
    oauth_consumer_key = 'my_consumer_key'
    oauth_consumer_secret = 'my_shared_secret'
    launch_url = 'http://jupyterhub/hub/lti/launch'
    headers = {'Content-Type': 'application/x-www-form-urlencoded'}

    args = factory_lti11_basic_launch_args(
        oauth_consumer_key,
        oauth_consumer_secret,
    )

    validator = LTI11LaunchValidator(
        {oauth_consumer_key: oauth_consumer_secret})

    with pytest.raises(HTTPError):
        args['oauth_consumer_key'] = [b'fake_consumer_key'][0].decode('utf-8')
        assert validator.validate_launch_request(launch_url, headers, args)
def test_launch_with_missing_resource_link_id():
    """
    Does the launch request work with a missing resource_link_id key?
    """
    oauth_consumer_key = 'my_consumer_key'
    oauth_consumer_secret = 'my_shared_secret'
    launch_url = 'http://jupyterhub/hub/lti/launch'
    headers = {'Content-Type': 'application/x-www-form-urlencoded'}

    args = factory_lti11_basic_launch_args(
        oauth_consumer_key,
        oauth_consumer_secret,
    )

    del args['resource_link_id']

    validator = LTI11LaunchValidator(
        {oauth_consumer_key: oauth_consumer_secret})

    with pytest.raises(HTTPError):
        validator.validate_launch_request(launch_url, headers, args)
Exemplo n.º 8
0
def test_unregistered_consumer_key():
    """
    Does the launch request work with a consumer key that does not match?
    """
    oauth_consumer_key = 'my_consumer_key'
    oauth_consumer_secret = 'my_shared_secret'
    launch_url = 'http://jupyterhub/hub/lti/launch'
    headers = {'Content-Type': 'application/x-www-form-urlencoded'}

    args = mock_lti11_args(
        oauth_consumer_key,
        oauth_consumer_secret,
    )

    validator = LTI11LaunchValidator(
        {oauth_consumer_key: oauth_consumer_secret})

    args['oauth_consumer_key'] = 'fake_consumer_key'

    with pytest.raises(HTTPError):
        assert validator.validate_launch_request(launch_url, headers, args)