Skip to content

Commit ce76ade

Browse files
committed
fix unit tests after merging #549
1 parent 0495149 commit ce76ade

2 files changed

Lines changed: 25 additions & 4 deletions

File tree

mozilla_django_oidc/auth.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,9 @@ def _verify_jws(self, payload, key):
141141

142142
try:
143143
# Maybe add a settings to enforce audiance validation
144-
return jwt.decode(payload, key, algorithms=alg, options={"verify_aud": False})
144+
return jwt.decode(
145+
payload, key, algorithms=alg, options={"verify_aud": False}
146+
)
145147
except jwt.DecodeError:
146148
msg = "JWS token verification failed."
147149
raise SuspiciousOperation(msg)
@@ -262,7 +264,11 @@ def get_userinfo(self, access_token, id_token, payload):
262264
)
263265
user_response.raise_for_status()
264266

265-
if user_response.headers.get("content-type", "").lower().startswith("application/jwt"):
267+
if (
268+
user_response.headers.get("content-type", "")
269+
.lower()
270+
.startswith("application/jwt")
271+
):
266272
# OIDC userinfo claims can be encoded as JWT
267273
return self.verify_token(user_response.text)
268274

@@ -354,7 +360,7 @@ def get_or_create_user(self, access_token, id_token, payload):
354360
return user
355361
else:
356362
LOGGER.debug(
357-
"Login failed: No user with %s found, and " "OIDC_CREATE_USER is False",
363+
"Login failed: No user with %s found, and OIDC_CREATE_USER is False",
358364
self.describe_user_by_claims(user_info),
359365
)
360366
return None

tests/test_auth.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,7 @@ def test_successful_authentication_existing_user_namespaced(
217217
"nickname": "a_username",
218218
"email": "email@example.com",
219219
}
220+
get_json_mock.headers.get.return_value = "application/json"
220221
request_mock.get.return_value = get_json_mock
221222
post_json_mock = Mock(status_code=200)
222223
post_json_mock.json.return_value = {
@@ -266,6 +267,7 @@ def test_successful_authentication_existing_user(self, token_mock, request_mock)
266267
"nickname": "a_username",
267268
"email": "email@example.com",
268269
}
270+
get_json_mock.headers.get.return_value = "application/json"
269271
request_mock.get.return_value = get_json_mock
270272
post_json_mock = Mock(status_code=200)
271273
post_json_mock.json.return_value = {
@@ -319,6 +321,7 @@ def test_successful_authentication_existing_user_upper_case(
319321
"nickname": "a_username",
320322
"email": "email@example.com",
321323
}
324+
get_json_mock.headers.get.return_value = "application/json"
322325
request_mock.get.return_value = get_json_mock
323326
post_json_mock = Mock(status_code=200)
324327
post_json_mock.json.return_value = {
@@ -372,6 +375,7 @@ def test_failed_authentication_verify_claims(
372375
get_json_mock = Mock()
373376
claims_response = {"nickname": "a_username", "email": "email@example.com"}
374377
get_json_mock.json.return_value = claims_response
378+
get_json_mock.headers.get.return_value = "application/json"
375379
request_mock.get.return_value = get_json_mock
376380
post_json_mock = Mock(status_code=200)
377381
post_json_mock.json.return_value = {
@@ -423,6 +427,7 @@ def test_successful_authentication_new_user(
423427
"nickname": "a_username",
424428
"email": "email@example.com",
425429
}
430+
get_json_mock.headers.get.return_value = "application/json"
426431
request_mock.get.return_value = get_json_mock
427432
post_json_mock = Mock(status_code=200)
428433
post_json_mock.json.return_value = {
@@ -483,6 +488,7 @@ def test_successful_authentication_basic_auth_token(self, token_mock, request_mo
483488
"nickname": "a_username",
484489
"email": "email@example.com",
485490
}
491+
get_json_mock.headers.get.return_value = "application/json"
486492
request_mock.get.return_value = get_json_mock
487493
post_json_mock = Mock(status_code=200)
488494
post_json_mock.json.return_value = {
@@ -642,6 +648,7 @@ def test_create_user_enabled(self, request_mock, jws_mock):
642648
"nickname": "a_username",
643649
"email": "email@example.com",
644650
}
651+
get_json_mock.headers.get.return_value = "application/json"
645652
request_mock.get.return_value = get_json_mock
646653
post_json_mock = Mock(status_code=200)
647654
post_json_mock.json.return_value = {
@@ -671,6 +678,7 @@ def test_custom_username_algo(self, request_mock, jws_mock, algo_mock):
671678
"nickname": "a_username",
672679
"email": "email@example.com",
673680
}
681+
get_json_mock.headers.get.return_value = "application/json"
674682
request_mock.get.return_value = get_json_mock
675683
post_json_mock = Mock(status_code=200)
676684
post_json_mock.json.return_value = {
@@ -701,6 +709,7 @@ def test_custom_username_algo_dotted_path(self, request_mock, jws_mock):
701709
"nickname": "a_username",
702710
"email": "email@example.com",
703711
}
712+
get_json_mock.headers.get.return_value = "application/json"
704713
request_mock.get.return_value = get_json_mock
705714
post_json_mock = Mock(status_code=200)
706715
post_json_mock.json.return_value = {
@@ -733,6 +742,7 @@ def test_dotted_username_algo_callback_with_claims(self, request_mock, jws_mock)
733742
"email": "email@example.com",
734743
"domain": domain,
735744
}
745+
get_json_mock.headers.get.return_value = "application/json"
736746
request_mock.get.return_value = get_json_mock
737747
post_json_mock = Mock(status_code=200)
738748
post_json_mock.json.return_value = {
@@ -820,6 +830,7 @@ def update_user(user, claims):
820830
"nickname": "a_username",
821831
"email": "email@example.com",
822832
}
833+
get_json_mock.headers.get.return_value = "application/json"
823834
request_mock.get.return_value = get_json_mock
824835
post_json_mock = Mock(status_code=200)
825836
post_json_mock.json.return_value = {
@@ -845,7 +856,10 @@ def test_get_userinfo_with_jwt_response(self, verify_token_mock, request_mock):
845856
request_mock.get.return_value = jwt_response
846857

847858
# Mock the verify_token method to return a specific payload
848-
verify_token_mock.return_value = {"email": "email@example.com", "name": "John Doe"}
859+
verify_token_mock.return_value = {
860+
"email": "email@example.com",
861+
"name": "John Doe",
862+
}
849863

850864
# Call the get_userinfo method
851865
user_info = self.backend.get_userinfo("access_token", "id_token", {})
@@ -900,6 +914,7 @@ def test_jwt_verify_sign_key(self, request_mock):
900914
"nickname": "username",
901915
"email": "email@example.com",
902916
}
917+
get_json_mock.headers.get.return_value = "application/json"
903918
request_mock.get.return_value = get_json_mock
904919
post_json_mock = Mock(status_code=200)
905920
post_json_mock.json.return_value = {

0 commit comments

Comments
 (0)