1010from splunk_sdk .auth import PKCEAuthManager , ClientAuthManager
1111from test .fixtures import get_auth_manager as pkce_auth_manager # NOQA
1212from test .fixtures import get_client_auth_manager as client_auth_manager # NOQA
13- from test .fixtures import get_client_auth_manager_scoped as client_auth_manager_scoped
1413from test .fixtures import get_service_principal_auth_manager as service_principal_auth_manager # NOQA
1514
1615
@@ -27,10 +26,7 @@ def test_auth_error_properties(pkce_auth_manager):
2726 try :
2827 pkce_auth_manager .authenticate ()
2928 except AuthnError as err :
30- assert (err .status != "" )
31- assert (err .status is not None )
32- assert (err .server_error_description != "" )
33- assert (err .server_error_description is not None )
29+ assert (err ._response is not None )
3430 assert (err .request_id != "" )
3531 assert (err .request_id is not None )
3632 finally :
@@ -41,9 +37,12 @@ def test_refresh_token_authenticate(pkce_auth_manager):
4137 auth_context = pkce_auth_manager .authenticate ()
4238
4339 # use existing token from auth_context
44- refresh_token_mgr = RefreshTokenAuthManager (client_id = os .environ .get ('SPLUNK_APP_CLIENT_ID ' ),
40+ refresh_token_mgr = RefreshTokenAuthManager (client_id = os .environ .get ('SPLUNK_APP_CLIENT_ID_2 ' ),
4541 refresh_token = auth_context .refresh_token ,
46- host = os .environ .get ('SPLUNK_AUTH_HOST' ))
42+ tenant_scoped = True ,
43+ tenant = os .environ .get ('SPLUNK_TENANT_2' ),
44+ region = os .environ .get ('SPLUNK_REGION' ),
45+ host = os .environ .get ('SPLUNK_AUTH_HOST_2' ))
4746
4847 new_auth_context = refresh_token_mgr .authenticate ()
4948
@@ -55,9 +54,12 @@ def test_refresh_token_authenticate(pkce_auth_manager):
5554 assert (new_auth_context .scope is not None )
5655
5756def test_error_refresh_token_authenticate ():
58- refresh_token_mgr = RefreshTokenAuthManager (client_id = os .environ .get ('SPLUNK_APP_CLIENT_ID' ),
59- refresh_token = "refresh" ,
60- host = os .environ .get ('SPLUNK_AUTH_HOST' ))
57+ refresh_token_mgr = RefreshTokenAuthManager (client_id = os .environ .get ('SPLUNK_APP_CLIENT_ID_2' ),
58+ refresh_token = 'refresh' ,
59+ tenant_scoped = True ,
60+ tenant = os .environ .get ('SPLUNK_TENANT_2' ),
61+ region = os .environ .get ('SPLUNK_REGION' ),
62+ host = os .environ .get ('SPLUNK_AUTH_HOST_2' ))
6163
6264 with pytest .raises (AuthnError ):
6365 refresh_token_mgr .authenticate ()
@@ -67,11 +69,6 @@ def test_client_credentials_authenticate(client_auth_manager):
6769 auth_context = client_auth_manager .authenticate ()
6870 _assert_client_credentials_auth_context (auth_context )
6971
70- @pytest .mark .usefixtures ('client_auth_manager_scoped' ) # NOQA
71- def test_client_credentials_authenticate_scoped (client_auth_manager_scoped ):
72- auth_context = client_auth_manager_scoped .authenticate ()
73- _assert_client_credentials_auth_context (auth_context )
74-
7572@pytest .mark .usefixtures ('client_auth_manager' ) # NOQA
7673def test_token_authenticate (client_auth_manager ):
7774 auth_context = client_auth_manager .authenticate ()
@@ -93,10 +90,10 @@ def test_token_authenticate(client_auth_manager):
9390 assert (auth_context .id_token == new_auth_context .id_token )
9491 assert (auth_context .refresh_token == new_auth_context .refresh_token )
9592
96- context = Context (host = os .environ .get ("SPLUNK_HOST " ), tenant = os .environ .get ("SPLUNK_TENANT " ))
93+ context = Context (host = os .environ .get ("SPLUNK_HOST_2 " ), tenant = os .environ .get ("SPLUNK_TENANT_2 " ))
9794 base_client = BaseClient (context = context , auth_manager = token_mgr )
9895 idc = IdentityAndAccessControl (base_client )
99- assert (idc .validate_token ().name .lower () == os .environ .get ("SPLUNK_APP_CLIENT_CRED_ID " ).lower ())
96+ assert (idc .validate_token ().name .lower () == os .environ .get ("SPLUNK_APP_CLIENT_CRED_ID_2 " ).lower ())
10097
10198
10299def test_pkce_requests_hook ():
@@ -105,25 +102,34 @@ def test_pkce_requests_hook():
105102 def test_hook (response , ** kwargs ):
106103 responses .append (response )
107104
108- PKCEAuthManager (host = os .environ .get ('SPLUNK_AUTH_HOST ' ),
109- client_id = os .environ .get ('SPLUNK_APP_CLIENT_ID ' ),
105+ PKCEAuthManager (host = os .environ .get ('SPLUNK_AUTH_HOST_2 ' ),
106+ client_id = os .environ .get ('SPLUNK_APP_CLIENT_ID_2 ' ),
110107 username = os .environ .get ('TEST_USERNAME' ),
111108 password = os .environ .get ('TEST_PASSWORD' ),
112- redirect_uri = os .environ .get ('SPLUNK_REDIRECT_URL' ),
109+ redirect_uri = 'https://localhost:8000' ,
110+ tenant_scoped = True ,
111+ tenant = os .environ .get ('SPLUNK_TENANT_2' ),
112+ region = os .environ .get ('SPLUNK_REGION' ),
113113 requests_hooks = [test_hook ]).authenticate ()
114114 assert len (responses ) == 4
115- auth_url = 'https://%s' % os .environ .get ('SPLUNK_AUTH_HOST' )
115+ auth_url = 'https://region-%s.%s' % (
116+ os .environ .get ('SPLUNK_REGION' ),
117+ os .environ .get ('SPLUNK_AUTH_HOST_2' ))
118+ auth_url_scoped = 'https://%s.%s' % (
119+ os .environ .get ('SPLUNK_TENANT_2' ),
120+ os .environ .get ('SPLUNK_AUTH_HOST_2' ))
116121 assert responses [0 ].request .method == 'GET'
117122 assert responses [0 ].request .url == '%s/csrfToken' % auth_url
118123 assert responses [0 ].status_code == 200
119124 assert responses [1 ].request .method == 'POST'
120125 assert responses [1 ].request .url == '%s/authn' % auth_url
121126 assert responses [1 ].status_code == 200
122127 assert responses [2 ].request .method == 'GET'
123- assert responses [2 ].request .url .startswith ('%s/authorize' % auth_url )
128+ assert responses [2 ].request .url .startswith ('%s/authorize' % auth_url_scoped )
124129 assert responses [2 ].status_code == 302
125130 assert responses [3 ].request .method == 'POST'
126- assert responses [3 ].request .url == '%s/token' % auth_url
131+ assert responses [3 ].request .url == '%s/%s/token' % (
132+ auth_url_scoped , os .environ .get ('SPLUNK_TENANT_2' ))
127133 assert responses [3 ].status_code == 200
128134
129135
@@ -133,11 +139,14 @@ def test_pkce_no_list_hooks():
133139 def test_hook (* args , ** kwargs ):
134140 hook_called .append (True )
135141
136- PKCEAuthManager (host = os .environ .get ('SPLUNK_AUTH_HOST ' ),
137- client_id = os .environ .get ('SPLUNK_APP_CLIENT_ID ' ),
142+ PKCEAuthManager (host = os .environ .get ('SPLUNK_AUTH_HOST_2 ' ),
143+ client_id = os .environ .get ('SPLUNK_APP_CLIENT_ID_2 ' ),
138144 username = os .environ .get ('TEST_USERNAME' ),
139145 password = os .environ .get ('TEST_PASSWORD' ),
140- redirect_uri = os .environ .get ('SPLUNK_REDIRECT_URL' ),
146+ redirect_uri = 'https://localhost:8000' ,
147+ tenant_scoped = True ,
148+ tenant = os .environ .get ('SPLUNK_TENANT_2' ),
149+ region = os .environ .get ('SPLUNK_REGION' ),
141150 requests_hooks = test_hook ).authenticate ()
142151 assert hook_called
143152
@@ -148,10 +157,13 @@ def test_client_manager_requests_hook():
148157 def test_hook (* args , ** kwargs ):
149158 hook_called .append (True )
150159
151- ClientAuthManager (host = os .environ .get ('SPLUNK_AUTH_HOST' ),
152- client_id = os .environ .get ('SPLUNK_APP_CLIENT_CRED_ID' ),
153- client_secret = os .environ .get ('SPLUNK_APP_CLIENT_CRED_SECRET' ),
154- scope = os .environ .get ('SPLUNK_SCOPE' ),
160+ ClientAuthManager (host = os .environ .get ('SPLUNK_AUTH_HOST_2' ),
161+ client_id = os .environ .get ('SPLUNK_APP_CLIENT_CRED_ID_2' ),
162+ client_secret = os .environ .get ('SPLUNK_APP_CLIENT_CRED_SECRET_2' ),
163+ scope = '' ,
164+ tenant_scoped = True ,
165+ tenant = os .environ .get ('SPLUNK_TENANT_2' ),
166+ region = os .environ .get ('SPLUNK_REGION' ),
155167 requests_hooks = [test_hook ]).authenticate ()
156168 assert hook_called
157169
@@ -162,11 +174,14 @@ def test_pkce_manager_no_list_hooks():
162174 def test_hook (* args , ** kwargs ):
163175 hook_called .append (True )
164176
165- PKCEAuthManager (host = os .environ .get ('SPLUNK_AUTH_HOST ' ),
166- client_id = os .environ .get ('SPLUNK_APP_CLIENT_ID ' ),
177+ PKCEAuthManager (host = os .environ .get ('SPLUNK_AUTH_HOST_2 ' ),
178+ client_id = os .environ .get ('SPLUNK_APP_CLIENT_ID_2 ' ),
167179 username = os .environ .get ('TEST_USERNAME' ),
168180 password = os .environ .get ('TEST_PASSWORD' ),
169- redirect_uri = os .environ .get ('SPLUNK_REDIRECT_URL' ),
181+ redirect_uri = 'https://localhost:8000' ,
182+ tenant_scoped = True ,
183+ tenant = os .environ .get ('SPLUNK_TENANT_2' ),
184+ region = os .environ .get ('SPLUNK_REGION' ),
170185 requests_hooks = test_hook ).authenticate ()
171186 assert hook_called
172187
@@ -186,11 +201,11 @@ def _assert_pkce_auth_context(auth_context):
186201 assert ('email' in auth_context .scope )
187202
188203
189- def _assert_client_credentials_auth_context (auth_context , expires_in = 43200 ):
204+ def _assert_client_credentials_auth_context (auth_context , expires_in = None ):
190205 assert (auth_context is not None )
191206 assert (auth_context .access_token is not None )
192- # assert(auth_context.id_token is None)
193- assert (auth_context .expires_in == expires_in )
207+ if expires_in is not None :
208+ assert (auth_context .expires_in == expires_in )
194209 assert (auth_context .token_type == 'Bearer' )
195210 assert (auth_context .refresh_token is None )
196211 assert (auth_context .scope == 'client_credentials' )
@@ -227,7 +242,7 @@ def test_sp_token_authenticate(service_principal_auth_manager):
227242 assert (auth_context .id_token == new_auth_context .id_token )
228243 assert (auth_context .refresh_token == new_auth_context .refresh_token )
229244
230- context = Context (host = os .environ .get ("SPLUNK_HOST " ), tenant = os .environ .get ("SPLUNK_TENANT " ))
245+ context = Context (host = os .environ .get ("SPLUNK_HOST_2 " ), tenant = os .environ .get ("SPLUNK_TENANT_2 " ))
231246 base_client = BaseClient (context = context , auth_manager = token_mgr )
232247 idc = IdentityAndAccessControl (base_client )
233- assert (idc .validate_token ().name .lower () == os .environ .get ("SPLUNK_APP_PRINCIPAL_NAME " ).lower ())
248+ assert (idc .validate_token ().name .lower () == os .environ .get ("SPLUNK_APP_PRINCIPAL_NAME_2 " ).lower ())
0 commit comments