1
1
# pylint: disable=no-self-use,missing-docstring
2
2
3
3
import json
4
- from urllib .parse import urlparse , parse_qs
4
+ from urllib .parse import parse_qs
5
+ from urllib .parse import urlparse
5
6
6
7
import pytest
7
-
8
8
from cryptojwt .key_jar import build_keyjar
9
9
10
10
from oidcmsg .exception import MissingRequiredAttribute
11
11
from oidcmsg .message import DecodeError
12
12
from oidcmsg .message import json_deserializer
13
13
from oidcmsg .message import json_serializer
14
14
from oidcmsg .message import sp_sep_list_deserializer
15
-
16
- from oidcmsg .oauth2 import factory
17
- from oidcmsg .oauth2 import is_error_message
18
15
from oidcmsg .oauth2 import AccessTokenRequest
19
16
from oidcmsg .oauth2 import AccessTokenResponse
20
17
from oidcmsg .oauth2 import AuthorizationErrorResponse
21
18
from oidcmsg .oauth2 import AuthorizationRequest
22
19
from oidcmsg .oauth2 import AuthorizationResponse
23
20
from oidcmsg .oauth2 import CCAccessTokenRequest
24
- from oidcmsg .oauth2 import ResponseMessage
25
- from oidcmsg .oauth2 import RefreshAccessTokenRequest
26
21
from oidcmsg .oauth2 import ROPCAccessTokenRequest
22
+ from oidcmsg .oauth2 import RefreshAccessTokenRequest
23
+ from oidcmsg .oauth2 import ResponseMessage
27
24
from oidcmsg .oauth2 import TokenErrorResponse
25
+ from oidcmsg .oauth2 import factory
26
+ from oidcmsg .oauth2 import is_error_message
28
27
29
28
__author__ = 'Roland Hedberg'
30
29
@@ -117,7 +116,8 @@ def test_urlencoded_with_redirect_uri(self):
117
116
118
117
ue = ar .to_urlencoded ()
119
118
assert query_string_compare (ue ,
120
- "state=cold&redirect_uri=http%3A%2F%2Ffoobar.example.com%2Foaclient&"
119
+ "state=cold&redirect_uri=http%3A%2F%2Ffoobar.example.com"
120
+ "%2Foaclient&"
121
121
"response_type=code&client_id=foobar" )
122
122
123
123
def test_urlencoded_resp_type_token (self ):
@@ -128,7 +128,8 @@ def test_urlencoded_resp_type_token(self):
128
128
129
129
ue = ar .to_urlencoded ()
130
130
assert query_string_compare (ue ,
131
- "state=xyz&redirect_uri=https%3A%2F%2Fclient.example.com%2Fcb&response_type=token&"
131
+ "state=xyz&redirect_uri=https%3A%2F%2Fclient.example.com%2Fcb"
132
+ "&response_type=token&"
132
133
"client_id=s6BhdRkqt3" )
133
134
134
135
def test_deserialize_urlencoded (self ):
@@ -146,7 +147,8 @@ def test_urlencoded_with_scope(self):
146
147
147
148
ue = ar .to_urlencoded ()
148
149
assert query_string_compare (ue ,
149
- "scope=foo+bar&state=cold&redirect_uri=http%3A%2F%2Ffoobar.example.com%2Foaclient&"
150
+ "scope=foo+bar&state=cold&redirect_uri=http%3A%2F%2Ffoobar"
151
+ ".example.com%2Foaclient&"
150
152
"response_type=code&client_id=foobar" )
151
153
152
154
def test_deserialize_urlencoded_multiple_params (self ):
@@ -165,9 +167,11 @@ def test_urlencoded_missing_required(self):
165
167
ar .verify ()
166
168
167
169
def test_urlencoded_invalid_scope (self ):
168
- args = {"response_type" : [10 ], "client_id" : "foobar" ,
169
- "redirect_uri" : "http://foobar.example.com/oaclient" ,
170
- "scope" : ["foo" , "bar" ], "state" : "cold" }
170
+ args = {
171
+ "response_type" : [10 ], "client_id" : "foobar" ,
172
+ "redirect_uri" : "http://foobar.example.com/oaclient" ,
173
+ "scope" : ["foo" , "bar" ], "state" : "cold"
174
+ }
171
175
172
176
with pytest .raises (DecodeError ):
173
177
AuthorizationRequest (** args )
@@ -245,11 +249,13 @@ def test_verify(self):
245
249
assert ar .verify ()
246
250
247
251
def test_load_dict (self ):
248
- bib = {"scope" : ["openid" ],
249
- "state" : "id-6da9ca0cc23959f5f33e8becd9b08cae" ,
250
- "redirect_uri" : "http://localhost:8087authz" ,
251
- "response_type" : ["code" ],
252
- "client_id" : "a1b2c3" }
252
+ bib = {
253
+ "scope" : ["openid" ],
254
+ "state" : "id-6da9ca0cc23959f5f33e8becd9b08cae" ,
255
+ "redirect_uri" : "http://localhost:8087authz" ,
256
+ "response_type" : ["code" ],
257
+ "client_id" : "a1b2c3"
258
+ }
253
259
254
260
arq = AuthorizationRequest (** bib )
255
261
@@ -260,11 +266,13 @@ def test_load_dict(self):
260
266
assert arq ["client_id" ] == bib ["client_id" ]
261
267
262
268
def test_json_serizalize_deserialize_multiple_params (self ):
263
- argv = {"scope" : ["openid" ],
264
- "state" : "id-b0be8bb64118c3ec5f70093a1174b039" ,
265
- "redirect_uri" : "http://localhost:8087authz" ,
266
- "response_type" : ["code" ],
267
- "client_id" : "a1b2c3" }
269
+ argv = {
270
+ "scope" : ["openid" ],
271
+ "state" : "id-b0be8bb64118c3ec5f70093a1174b039" ,
272
+ "redirect_uri" : "http://localhost:8087authz" ,
273
+ "response_type" : ["code" ],
274
+ "client_id" : "a1b2c3"
275
+ }
268
276
269
277
arq = AuthorizationRequest (** argv )
270
278
jstr = arq .serialize (method = "json" )
@@ -416,15 +424,18 @@ def test_to_urlencoded_extended_omit(self):
416
424
417
425
uec = atr .to_urlencoded ()
418
426
assert query_string_compare (uec ,
419
- "scope=inner+outer&level=3&expires_in=3600&token_type=example&extra=local&"
427
+ "scope=inner+outer&level=3&expires_in=3600&token_type=example"
428
+ "&extra=local&"
420
429
"extra=external&refresh_token=tGzv3JOkF0XG5Qx2TlKWIA&"
421
- "access_token=2YotnFZFEjr1zCsicMWpAA&example_parameter=example_value" )
430
+ "access_token=2YotnFZFEjr1zCsicMWpAA&example_parameter"
431
+ "=example_value" )
422
432
423
433
del atr ["extra" ]
424
434
ouec = atr .to_urlencoded ()
425
435
assert query_string_compare (ouec ,
426
436
"access_token=2YotnFZFEjr1zCsicMWpAA&refresh_token=tGzv3JOkF0XG5Qx2TlKWIA&"
427
- "level=3&example_parameter=example_value&token_type=example&expires_in=3600&"
437
+ "level=3&example_parameter=example_value&token_type=example"
438
+ "&expires_in=3600&"
428
439
"scope=inner+outer" )
429
440
assert len (uec ) == (len (ouec ) + len ("extra=local" ) +
430
441
len ("extra=external" ) + 2 )
0 commit comments