44import re
55import time
66from datetime import datetime , tzinfo , timedelta
7+ from functools import partial
78
89import jwt
910import responses
@@ -108,29 +109,32 @@ def do_build_access_token(request, issuer):
108109 return 200 , [], json .dumps (response )
109110
110111
111- def build_openid_keys (request ):
112- keys = {
113- "keys" : [
114- {
115- "kty" : "RSA" ,
116- "use" : "sig" ,
117- "kid" : "dummythumbprint" ,
118- "x5t" : "dummythumbprint" ,
119- "n" : "somebase64encodedmodulus" ,
120- "e" : "somebase64encodedexponent" ,
121- "x5c" : [base64 .b64encode (signing_cert_a ).decode (), ]
122- },
123- {
124- "kty" : "RSA" ,
125- "use" : "sig" ,
126- "kid" : "dummythumbprint" ,
127- "x5t" : "dummythumbprint" ,
128- "n" : "somebase64encodedmodulus" ,
129- "e" : "somebase64encodedexponent" ,
130- "x5c" : [base64 .b64encode (signing_cert_b ).decode (), ]
131- },
132- ]
133- }
112+ def build_openid_keys (request , empty_keys = False ):
113+ if empty_keys :
114+ keys = {"keys" : []}
115+ else :
116+ keys = {
117+ "keys" : [
118+ {
119+ "kty" : "RSA" ,
120+ "use" : "sig" ,
121+ "kid" : "dummythumbprint" ,
122+ "x5t" : "dummythumbprint" ,
123+ "n" : "somebase64encodedmodulus" ,
124+ "e" : "somebase64encodedexponent" ,
125+ "x5c" : [base64 .b64encode (signing_cert_a ).decode (), ]
126+ },
127+ {
128+ "kty" : "RSA" ,
129+ "use" : "sig" ,
130+ "kid" : "dummythumbprint" ,
131+ "x5t" : "dummythumbprint" ,
132+ "n" : "somebase64encodedmodulus" ,
133+ "e" : "somebase64encodedexponent" ,
134+ "x5c" : [base64 .b64encode (signing_cert_b ).decode (), ]
135+ },
136+ ]
137+ }
134138 return 200 , [], json .dumps (keys )
135139
136140
@@ -142,7 +146,7 @@ def build_adfs_meta(request):
142146 return 200 , [], data
143147
144148
145- def mock_adfs (adfs_version ):
149+ def mock_adfs (adfs_version , empty_keys = False ):
146150 if adfs_version not in ["2012" , "2016" , "azure" ]:
147151 raise NotImplementedError ("This version of ADFS is not implemented" )
148152
@@ -167,7 +171,7 @@ def wrapper(*original_args, **original_kwargs):
167171 )
168172 rsps .add_callback (
169173 rsps .GET , openid_keys ,
170- callback = build_openid_keys ,
174+ callback = partial ( build_openid_keys , empty_keys = empty_keys ) ,
171175 content_type = 'application/json' ,
172176 )
173177 elif adfs_version == "azure" :
@@ -177,7 +181,7 @@ def wrapper(*original_args, **original_kwargs):
177181 )
178182 rsps .add_callback (
179183 rsps .GET , openid_keys ,
180- callback = build_openid_keys ,
184+ callback = partial ( build_openid_keys , empty_keys = empty_keys ) ,
181185 content_type = 'application/json' ,
182186 )
183187 else :
0 commit comments