def test_request_init(self): req_args = {'response_type': 'code', 'state': 'state'} self.service.endpoint = 'https://example.com/authorize' _info = self.service.get_request_parameters(request_args=req_args) assert set(_info.keys()) == {'url', 'method'} msg = AuthorizationRequest().from_urlencoded( self.service.get_urlinfo(_info['url'])) assert set(msg.keys()) == {'client_id', 'scope', 'response_type', 'state', 'redirect_uri', 'nonce'}
def test_multiple_response_types_json(self): ar = AuthorizationRequest(response_type=["code", "token"], client_id="foobar") ue = ar.to_json() ue_obj = json.loads(ue) expected_ue_obj = {"response_type": "code token", "client_id": "foobar"} assert ue_obj == expected_ue_obj are = AuthorizationRequest().deserialize(ue, "json") assert _eq(are.keys(), ["response_type", "client_id"]) assert _eq(are["response_type"], ["code", "token"])
def test_multiple_response_types_urlencoded(self): ar = AuthorizationRequest(response_type=["code", "token"], client_id="foobar") ue = ar.to_urlencoded() ue_splits = ue.split("&") expected_ue_splits = "response_type=code+token&client_id=foobar".split("&") assert _eq(ue_splits, expected_ue_splits) are = AuthorizationRequest().deserialize(ue, "urlencoded") assert _eq(are.keys(), ["response_type", "client_id"]) assert _eq(are["response_type"], ["code", "token"])
def test_multiple_scopes_urlencoded(self): ar = AuthorizationRequest(response_type=["code", "token"], client_id="foobar", scope=["openid", "foxtrot"]) ue = ar.to_urlencoded() ue_splits = ue.split('&') expected_ue_splits = "scope=openid+foxtrot&response_type=code+token" \ "&client_id=foobar".split( '&') assert _eq(ue_splits, expected_ue_splits) are = AuthorizationRequest().deserialize(ue, "urlencoded") assert _eq(are.keys(), ["response_type", "client_id", "scope"]) assert _eq(are["response_type"], ["code", "token"]) assert _eq(are["scope"], ["openid", "foxtrot"])