@@ -230,3 +230,45 @@ def test_login_job_impersonate_token(self):
230
230
persist_token = True )
231
231
assert self .api_config .token == token
232
232
assert os .path .exists (settings .CONTEXT_AUTH_TOKEN_PATH ) is True
233
+
234
+ @httpretty .activate
235
+ def test_login_notebook_impersonate_token (self ):
236
+ token = uuid .uuid4 ().hex
237
+ httpretty .register_uri (
238
+ httpretty .POST ,
239
+ BaseApiHandler .build_url (
240
+ self .api_config .base_url ,
241
+ '/' ,
242
+ 'user' ,
243
+ 'project' ,
244
+ 'notebook' ,
245
+ 'imporsonatetoken'
246
+ ),
247
+ body = json .dumps ({'token' : token }),
248
+ content_type = 'application/json' , status = 200 )
249
+
250
+ # Login without updating the token and without persistence
251
+ if os .path .exists (settings .CONTEXT_AUTH_TOKEN_PATH ):
252
+ os .remove (settings .CONTEXT_AUTH_TOKEN_PATH )
253
+ assert self .api_config .token == 'token'
254
+ assert token == self .api_handler .login_notebook_impersonate_token (
255
+ username = 'user' ,
256
+ project_name = 'project' ,
257
+ internal_token = 'foo' ,
258
+ set_token = False ,
259
+ persist_token = False )
260
+ assert self .api_config .token == 'token'
261
+ assert os .path .exists (settings .CONTEXT_AUTH_TOKEN_PATH ) is False
262
+
263
+ # Login and update the token and persistence
264
+ if os .path .exists (settings .CONTEXT_AUTH_TOKEN_PATH ):
265
+ os .remove (settings .CONTEXT_AUTH_TOKEN_PATH )
266
+ assert self .api_config .token == 'token'
267
+ assert token == self .api_handler .login_notebook_impersonate_token (
268
+ username = 'user' ,
269
+ project_name = 'project' ,
270
+ internal_token = 'foo' ,
271
+ set_token = True ,
272
+ persist_token = True )
273
+ assert self .api_config .token == token
274
+ assert os .path .exists (settings .CONTEXT_AUTH_TOKEN_PATH ) is True
0 commit comments