@@ -438,3 +438,73 @@ def test_get_usage_rules(self):
438438
439439 # client specific usage rules
440440 self .endpoint_context .cdb ["client_id" ] = {"access_token" : {"expires_in" : 600 }}
441+
442+ def test_assigned_scope (self ):
443+ session_id = self ._create_session (AREQ )
444+ session_info = self .endpoint_context .session_manager .get_session_info (
445+ session_id = session_id , grant = True
446+ )
447+ grant = session_info ["grant" ]
448+ code = grant .mint_token (
449+ session_id ,
450+ endpoint_context = self .endpoint_context ,
451+ token_type = "authorization_code" ,
452+ token_handler = TOKEN_HANDLER ["authorization_code" ],
453+ )
454+
455+ code .scope = ["openid" , "email" ]
456+
457+ access_token = grant .mint_token (
458+ session_id ,
459+ endpoint_context = self .endpoint_context ,
460+ token_type = "access_token" ,
461+ token_handler = TOKEN_HANDLER ["access_token" ],
462+ based_on = code ,
463+ )
464+
465+ assert access_token .scope == code .scope
466+
467+ def test_assigned_scope_2nd (self ):
468+ session_id = self ._create_session (AREQ )
469+ session_info = self .endpoint_context .session_manager .get_session_info (
470+ session_id = session_id , grant = True
471+ )
472+ grant = session_info ["grant" ]
473+ code = grant .mint_token (
474+ session_id ,
475+ endpoint_context = self .endpoint_context ,
476+ token_type = "authorization_code" ,
477+ token_handler = TOKEN_HANDLER ["authorization_code" ],
478+ )
479+
480+ code .scope = ["openid" , "email" ]
481+
482+ refresh_token = grant .mint_token (
483+ session_id ,
484+ endpoint_context = self .endpoint_context ,
485+ token_type = "refresh_token" ,
486+ token_handler = TOKEN_HANDLER ["refresh_token" ],
487+ based_on = code ,
488+ )
489+
490+ access_token = grant .mint_token (
491+ session_id ,
492+ endpoint_context = self .endpoint_context ,
493+ token_type = "access_token" ,
494+ token_handler = TOKEN_HANDLER ["access_token" ],
495+ based_on = refresh_token ,
496+ )
497+
498+ assert access_token .scope == code .scope
499+
500+ refresh_token .scope = ["openid" , "xyz" ]
501+
502+ access_token = grant .mint_token (
503+ session_id ,
504+ endpoint_context = self .endpoint_context ,
505+ token_type = "access_token" ,
506+ token_handler = TOKEN_HANDLER ["access_token" ],
507+ based_on = refresh_token ,
508+ )
509+
510+ assert access_token .scope == refresh_token .scope
0 commit comments