def test_access_token_invalid_token(self):
        app = MagicMock()
        app._client.auth.secret = 'fakeApiKeyProperties.secret'
        app.href = b'HREF'
        api_keys = MagicMock()
        api_keys.get_key = lambda k, s=None: MagicMock(
                id=FAKE_CLIENT_ID, secret=FAKE_CLIENT_SECRET, status=StatusMixin.STATUS_ENABLED)
        app.api_keys = api_keys

        access_token = AccessToken(
                app=app,
                token='invalid_token_format'
                )
        self.assertFalse(access_token._is_valid())
    def test_access_token_scope_check(self):
        app = MagicMock()
        app._client.auth.secret = 'fakeApiKeyProperties.secret'
        app.href = b'HREF'
        api_keys = MagicMock()
        api_keys.get_key = lambda k, s=None: MagicMock(
                id=FAKE_CLIENT_ID, secret=FAKE_CLIENT_SECRET, status=StatusMixin.STATUS_ENABLED)
        app.api_keys = api_keys

        access_token = AccessToken(
                app=app,
                token='eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJIUkVGIiwiaWF0IjoxNDA1NDI5MDU5LCJleHAiOjE0MDU0MzI2NTksInN1YiI6ImZha2VfY2xpZW50X2lkIiwic2NvcGUiOiJ0ZXN0MSJ9.dNPzOg8cFxkknakTAccRfcGoRiPjn7z-M5TUacy5OTE'
                )
        self.assertFalse(access_token._within_scope(['fake_scope_that_the_token_doesnt_have']))
    def test_access_token_scope_check(self):
        app = MagicMock()
        app._client.auth.secret = 'fakeApiKeyProperties.secret'
        app.href = 'HREF'
        api_keys = MagicMock()
        api_keys.get_key = lambda k, s=None: MagicMock(
                id=FAKE_CLIENT_ID, secret=FAKE_CLIENT_SECRET, status=StatusMixin.STATUS_ENABLED)
        app.api_keys = api_keys

        access_token = AccessToken(
                app=app,
                token='eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJIUkVGIiwiaWF0IjoxNDA1NDI5MDU5LCJleHAiOjE0MDU0MzI2NTksInN1YiI6ImZha2VfY2xpZW50X2lkIiwic2NvcGUiOiJ0ZXN0MSJ9.dNPzOg8cFxkknakTAccRfcGoRiPjn7z-M5TUacy5OTE'
                )
        self.assertFalse(access_token._within_scope(['fake_scope_that_the_token_doesnt_have']))
    def test_access_token_invalid_token(self):
        app = MagicMock()
        app._client.auth.secret = 'fakeApiKeyProperties.secret'
        app.href = 'HREF'
        api_keys = MagicMock()
        api_keys.get_key = lambda k, s=None: MagicMock(
                id=FAKE_CLIENT_ID, secret=FAKE_CLIENT_SECRET, status=StatusMixin.STATUS_ENABLED)
        app.api_keys = api_keys

        access_token = AccessToken(
                app=app,
                token='invalid_token_format'
                )
        self.assertFalse(access_token._is_valid())
    def get_access_token(self, jwt=None):
        if not hasattr(self, 'application'):
            raise ValueError('Access token cannot be generated without application')

        if jwt is None:
            jwt = self.get_jwt()

        return AccessToken(self.application, jwt)