Beispiel #1
0
    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
Beispiel #2
0
    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")