def test_factory(self): from sanction.exceptions import AccessDeniedError from sanction.exceptions import exception_factory self.assertTrue(isinstance(exception_factory("access_denied", {}), AccessDeniedError)) self.assertIsNotNone("%s" % exception_factory("invalid_client", {})) try: e = exception_factory("foo", {}) self.fail() except: pass
def authorization_received(self, data, expected_state=None): if "code" in data: if expected_state is not None: if expected_state != data["state"]: raise InvalidStateError("Expected %s, got %s." % ( expected_state, data["state"])) o = self.parse_access_token(self.adapter.service.request( self.adapter.token_endpoint, body=urlencode({ "code": data["code"], "client_id": self.client_id, "client_secret": self.client_secret, "redirect_uri": self.redirect_uri, "grant_type": "authorization_code" }), method="POST", headers={"Content-type": "application/x-www-form-urlencoded"})) self.adapter.credentials = credentials_factory(o["token_type"], self.adapter.name, o) return self.adapter.credentials elif "error" in data: raise exception_factory(data["error"], data) raise Exception("Unhandled authorization data received")