@@ -476,6 +476,33 @@ def test_oauth_redir_azure_version_two(self):
476476 self .assertEqual (redir .path .rstrip ("/" ), '/01234567-89ab-cdef-0123-456789abcdef/oauth2/authorize' )
477477 self .assertEqual (qs , sq_expected )
478478
479+ @mock_adfs ("azure" )
480+ def test_scopes_generated_correctly (self ):
481+ from django_auth_adfs .config import django_settings
482+ settings = deepcopy (django_settings )
483+ del settings .AUTH_ADFS ["SERVER" ]
484+ settings .AUTH_ADFS ["TENANT_ID" ] = "dummy_tenant_id"
485+ settings .AUTH_ADFS ["VERSION" ] = 'v2.0'
486+ settings .AUTH_ADFS ["SCOPES" ] = ['openid' , 'api://your-configured-client-id/user_impersonation' ]
487+ with patch ("django_auth_adfs.config.django_settings" , settings ), \
488+ patch ("django_auth_adfs.config.settings" , Settings ()), \
489+ patch ("django_auth_adfs.views.provider_config" , ProviderConfig ()):
490+ response = self .client .get ("/oauth2/login?next=/test/" )
491+ self .assertEqual (response .status_code , 302 )
492+ redir = urlparse (response ["Location" ])
493+ qs = parse_qs (redir .query )
494+ sq_expected = {
495+ 'scope' : ['openid api://your-configured-client-id/user_impersonation' ],
496+ 'client_id' : ['your-configured-client-id' ],
497+ 'state' : ['L3Rlc3Qv' ],
498+ 'response_type' : ['code' ],
499+ 'redirect_uri' : ['http://testserver/oauth2/callback' ]
500+ }
501+ self .assertEqual (redir .scheme , 'https' )
502+ self .assertEqual (redir .hostname , 'login.microsoftonline.com' )
503+ self .assertEqual (redir .path .rstrip ("/" ), '/01234567-89ab-cdef-0123-456789abcdef/oauth2/authorize' )
504+ self .assertEqual (qs , sq_expected )
505+
479506 @mock_adfs ("2016" )
480507 def test_inactive_user (self ):
481508 user = User .objects .create (** {
0 commit comments