Beispiel #1
0
class AuthorizationCodeGrantTest(TestCase):

    def setUp(self):
        self.request = Request('http://a.b/path')
        self.request.scopes = ('hello', 'world')
        self.request.expires_in = 1800
        self.request.client = 'batman'
        self.request.client_id = 'abcdef'
        self.request.code = '1234'
        self.request.response_type = 'code'
        self.request.grant_type = 'authorization_code'

        self.request_state = Request('http://a.b/path')
        self.request_state.state = 'abc'

        mock_validator = mock.MagicMock()
        self.auth = AuthorizationCodeGrant(request_validator=mock_validator)

    def test_create_authorization_grant(self):
        grant = self.auth.create_authorization_code(self.request)
        self.assertIn('code', grant)

        grant = self.auth.create_authorization_code(self.request_state)
        self.assertIn('code', grant)
        self.assertIn('state', grant)

    def test_create_token_response(self):
        bearer = BearerToken()
        bearer.save_token = mock.MagicMock()
        token = self.auth.create_token_response(self.request, bearer)
        token = json.loads(token)
        self.assertIn('access_token', token)
        self.assertIn('refresh_token', token)
        self.assertIn('expires_in', token)
        self.assertIn('scope', token)

    def test_validate_token_request(self):
        mock_validator = mock.MagicMock()
        auth = AuthorizationCodeGrant(request_validator=mock_validator)
        request = Request('http://a.b/path')
        self.assertRaises(UnsupportedGrantTypeError,
                auth.validate_token_request, request)

        request.grant_type = 'authorization_code'
        self.assertRaises(InvalidRequestError,
                auth.validate_token_request, request)

        mock_validator.validate_client = mock.MagicMock(return_value=False)
        request.code = 'waffles'
        request.client = 'batman'
        self.assertRaises(UnauthorizedClientError,
                auth.validate_token_request, request)

        mock_validator.validate_client = mock.MagicMock(return_value=True)
        mock_validator.validate_code = mock.MagicMock(return_value=False)
        self.assertRaises(InvalidGrantError,
                auth.validate_token_request, request)
Beispiel #2
0
class AuthorizationCodeGrantTest(TestCase):
    def setUp(self):
        self.request = Request('http://a.b/path')
        self.request.scopes = ('hello', 'world')
        self.request.expires_in = 1800
        self.request.client = 'batman'
        self.request.client_id = 'abcdef'
        self.request.code = '1234'
        self.request.response_type = 'code'
        self.request.grant_type = 'authorization_code'

        self.request_state = Request('http://a.b/path')
        self.request_state.state = 'abc'

        mock_validator = mock.MagicMock()
        self.auth = AuthorizationCodeGrant(request_validator=mock_validator)

    def test_create_authorization_grant(self):
        grant = self.auth.create_authorization_code(self.request)
        self.assertIn('code', grant)

        grant = self.auth.create_authorization_code(self.request_state)
        self.assertIn('code', grant)
        self.assertIn('state', grant)

    def test_create_token_response(self):
        bearer = BearerToken()
        bearer.save_token = mock.MagicMock()
        token = self.auth.create_token_response(self.request, bearer)
        token = json.loads(token)
        self.assertIn('access_token', token)
        self.assertIn('refresh_token', token)
        self.assertIn('expires_in', token)
        self.assertIn('scope', token)

    def test_validate_token_request(self):
        mock_validator = mock.MagicMock()
        auth = AuthorizationCodeGrant(request_validator=mock_validator)
        request = Request('http://a.b/path')
        self.assertRaises(UnsupportedGrantTypeError,
                          auth.validate_token_request, request)

        request.grant_type = 'authorization_code'
        self.assertRaises(InvalidRequestError, auth.validate_token_request,
                          request)

        mock_validator.validate_client = mock.MagicMock(return_value=False)
        request.code = 'waffles'
        request.client = 'batman'
        self.assertRaises(UnauthorizedClientError, auth.validate_token_request,
                          request)

        mock_validator.validate_client = mock.MagicMock(return_value=True)
        mock_validator.validate_code = mock.MagicMock(return_value=False)
        self.assertRaises(InvalidGrantError, auth.validate_token_request,
                          request)
Beispiel #3
0
    def setUp(self):
        self.request = Request('http://a.b/path')
        self.request.scopes = ('hello', 'world')
        self.request.expires_in = 1800
        self.request.client = 'batman'
        self.request.client_id = 'abcdef'
        self.request.code = '1234'
        self.request.response_type = 'code'
        self.request.grant_type = 'authorization_code'

        self.request_state = Request('http://a.b/path')
        self.request_state.state = 'abc'

        mock_validator = mock.MagicMock()
        self.auth = AuthorizationCodeGrant(request_validator=mock_validator)
Beispiel #4
0
 def setUp(self):
     mock_validator = mock.MagicMock()
     auth_code = AuthorizationCodeGrant(request_validator=mock_validator)
     implicit = ImplicitGrant(request_validator=mock_validator)
     response_types = {
         'code': auth_code,
         'token': implicit,
     }
     self.endpoint = AuthorizationEndpoint(response_types=response_types)
Beispiel #5
0
 def setUp(self):
     mock_validator = mock.MagicMock()
     auth_code = AuthorizationCodeGrant(request_validator=mock_validator)
     password = ResourceOwnerPasswordCredentialsGrant(
         request_validator=mock_validator)
     client = ClientCredentialsGrant(request_validator=mock_validator)
     grant_types = {
         'authorization_code': auth_code,
         'password': password,
         'client_credentials': client,
     }
     self.endpoint = TokenEndpoint(grant_types=grant_types)
Beispiel #6
0
    def setUp(self):
        self.request = Request('http://a.b/path')
        self.request.scopes = ('hello', 'world')
        self.request.expires_in = 1800
        self.request.client = 'batman'
        self.request.client_id = 'abcdef'
        self.request.code = '1234'
        self.request.response_type = 'code'
        self.request.grant_type = 'authorization_code'

        self.request_state = Request('http://a.b/path')
        self.request_state.state = 'abc'

        mock_validator = mock.MagicMock()
        self.auth = AuthorizationCodeGrant(request_validator=mock_validator)
Beispiel #7
0
    def test_validate_token_request(self):
        mock_validator = mock.MagicMock()
        auth = AuthorizationCodeGrant(request_validator=mock_validator)
        request = Request('http://a.b/path')
        self.assertRaises(UnsupportedGrantTypeError,
                          auth.validate_token_request, request)

        request.grant_type = 'authorization_code'
        self.assertRaises(InvalidRequestError, auth.validate_token_request,
                          request)

        mock_validator.validate_client = mock.MagicMock(return_value=False)
        request.code = 'waffles'
        request.client = 'batman'
        self.assertRaises(UnauthorizedClientError, auth.validate_token_request,
                          request)

        mock_validator.validate_client = mock.MagicMock(return_value=True)
        mock_validator.validate_code = mock.MagicMock(return_value=False)
        self.assertRaises(InvalidGrantError, auth.validate_token_request,
                          request)