Skip to content

Commit cdbdbba

Browse files
committed
additional testing in case of missing request parameters
1 parent 23ab1c4 commit cdbdbba

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

tests/pyop/test_provider.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,7 @@ def test_pkce_code_exchange_request_plaintext(self):
346346
assert response['access_token'] in self.provider.authz_state.access_tokens
347347
assert_id_token_base_claims(response['id_token'], self.provider.signing_key, self.provider,
348348
self.authn_request_args)
349+
349350
@patch('time.time', MOCK_TIME)
350351
def test_code_exchange_request_with_claims_requested_in_id_token(self):
351352
claims_req = {'claims': ClaimsRequest(id_token=Claims(email=None))}
@@ -413,6 +414,25 @@ def test_handle_token_request_reject_invalid_code_verifier(self):
413414
with pytest.raises(InvalidTokenRequest):
414415
self.provider.handle_token_request(urlencode(self.authorization_code_exchange_request_args))
415416

417+
def test_handle_token_request_reject_unsynced_requests(self):
418+
self.authorization_code_exchange_request_args['code'] = self.create_authz_code(
419+
{
420+
"code_challenge": "_1f8tFjAtu6D1Df-GOyDPoMjCJdEvaSWsnqR6SLpzsw=",
421+
"code_challenge_method": "S256"
422+
}
423+
)
424+
with pytest.raises(InvalidTokenRequest):
425+
self.provider.handle_token_request(urlencode(self.authorization_code_exchange_request_args))
426+
427+
def test_handle_token_request_reject_missing_code_challenge_method(self):
428+
self.authorization_code_exchange_request_args['code'] = self.create_authz_code(
429+
{
430+
"code_challenge": "_1f8tFjAtu6D1Df-GOyDPoMjCJdEvaSWsnqR6SLpzsw=",
431+
}
432+
)
433+
with pytest.raises(InvalidTokenRequest):
434+
self.provider.handle_token_request(urlencode(self.authorization_code_exchange_request_args))
435+
416436
def test_refresh_request(self):
417437
self.provider.authz_state = AuthorizationState(HashBasedSubjectIdentifierFactory('salt'),
418438
refresh_token_lifetime=600)

0 commit comments

Comments
 (0)