def __init__(self, adapter): assert(isinstance(adapter, AuthorizationEndpointMixIn)) assert(isinstance(adapter, ResourceEndpointMixIn)) ResourceFlow.__init__(self, "authorization_code", adapter) self.__client_id = safe_get("client_id", adapter.config, required=True) self.__client_secret = safe_get("client_secret", adapter.config, required=True) self.__redirect_uri = safe_get("redirect_uri", adapter.config) self.__scope = safe_get("scope", adapter.config)
def test_safe_get(self): from sanction.util import safe_get settings = {"foo": "bar"} self.assertEquals(safe_get("foo", settings), "bar") self.assertEquals(safe_get("bar", settings, required=False), None) self.assertEquals(safe_get("bar", settings, required=False, default="foo"), "foo") try: safe_get("bar", settings, required=True) self.fail() except KeyError: pass
def authorization_uri(self, state=None): """ Google's authorization URI Google differs from the :term:`OAuth2` spec by appending the ``access_type`` request value through a URI query param. """ uri = AuthorizationRequestFlow.authorization_uri(self, state) access_type = safe_get("access_type", self.adapter.config, required=True) return "%s&access_type=%s" % (uri, access_type)
def __init__(self, response): self.__description = safe_get("description", response) self.__error_uri = safe_get("error_uri", response) self.__state = safe_get("state", response)