@@ -208,6 +208,105 @@ def test_secondary_training_status_message_prev_missing():
208
208
)
209
209
210
210
211
+ def test_generate_tensorboard_url_valid_domain_and_bucket_paths ():
212
+ domain = "jupyterlab.us-east-2.abcdefgh.com"
213
+ bucket_paths = ["bucket1/path1" , "bucket2/path2" ]
214
+ expected = "https://{}/tensorboard/default?{}" .format (
215
+ domain , "s3urls=s3%3A%2F%2Fbucket1%2Fpath1,s3%3A%2F%2Fbucket2%2Fpath2"
216
+ )
217
+ assert sagemaker .utils .generate_tensorboard_url (domain , bucket_paths ) == expected
218
+
219
+
220
+ def test_generate_tensorboard_url_valid_domain_and_bucket_paths_with_s3_prefixes ():
221
+ domain = "jupyterlab.us-east-2.abcdefgh.com"
222
+ bucket_paths = ["s3://bucket1/path1" , "s3://bucket2/path2" ]
223
+ expected = "https://{}/tensorboard/default?{}" .format (
224
+ domain , "s3urls=s3%3A%2F%2Fbucket1%2Fpath1,s3%3A%2F%2Fbucket2%2Fpath2"
225
+ )
226
+ assert sagemaker .utils .generate_tensorboard_url (domain , bucket_paths ) == expected
227
+
228
+
229
+ def test_generate_tensorboard_url_valid_domain_and_bucket_paths_single ():
230
+ domain = "jupyterlab.us-east-2.abcdefgh.com"
231
+ bucket_paths = ["bucket1/path1" ]
232
+ expected = "https://{}/tensorboard/default?{}" .format (
233
+ domain , "s3urls=s3%3A%2F%2Fbucket1%2Fpath1"
234
+ )
235
+ assert sagemaker .utils .generate_tensorboard_url (domain , bucket_paths ) == expected
236
+
237
+
238
+ def test_generate_tensorboard_url_valid_domain_and_bucket_paths_string ():
239
+ domain = "jupyterlab.us-east-2.abcdefgh.com"
240
+ bucket_paths = "bucket1/path1"
241
+ expected = "https://{}/tensorboard/default?{}" .format (
242
+ domain , "s3urls=s3%3A%2F%2Fbucket1%2Fpath1"
243
+ )
244
+ assert sagemaker .utils .generate_tensorboard_url (domain , bucket_paths ) == expected
245
+
246
+
247
+ def test_generate_tensorboard_url_valid_domain_with_http_prefix_and_bucket_paths ():
248
+ domain = "http://jupyterlab.us-east-2.abcdefgh.com"
249
+ bucket_paths = ["bucket1/path1" ]
250
+ expected = "https://{}/tensorboard/default?{}" .format (
251
+ "jupyterlab.us-east-2.abcdefgh.com" , "s3urls=s3%3A%2F%2Fbucket1%2Fpath1"
252
+ )
253
+ assert sagemaker .utils .generate_tensorboard_url (domain , bucket_paths ) == expected
254
+
255
+
256
+ def test_generate_tensorboard_url_valid_domain_with_https_prefix_and_bucket_paths ():
257
+ domain = "https://jupyterlab.us-east-2.abcdefgh.com"
258
+ bucket_paths = ["bucket1/path1" ]
259
+ expected = "https://{}/tensorboard/default?{}" .format (
260
+ "jupyterlab.us-east-2.abcdefgh.com" , "s3urls=s3%3A%2F%2Fbucket1%2Fpath1"
261
+ )
262
+ assert sagemaker .utils .generate_tensorboard_url (domain , bucket_paths ) == expected
263
+
264
+
265
+ def test_generate_tensorboard_url_bucket_path_neither_string_nor_list ():
266
+ domain = "jupyterlab.us-east-2.abcdefgh.com"
267
+ bucket_paths = None
268
+ try :
269
+ sagemaker .utils .generate_tensorboard_url (domain , bucket_paths )
270
+ except AttributeError as error :
271
+ assert str (error ) == "bucket paths should be a list or a string"
272
+
273
+
274
+ def test_generate_tensorboard_url_empty_domain ():
275
+ domain = ""
276
+ bucket_paths = ["bucket1/path1" ]
277
+ try :
278
+ sagemaker .utils .generate_tensorboard_url (domain , bucket_paths )
279
+ except AttributeError as error :
280
+ assert str (error ) == "domain parameter should not be empty"
281
+
282
+
283
+ def test_generate_tensorboard_url_empty_bucket_paths ():
284
+ domain = "jupyterlab.us-east-2.abcdefgh.com"
285
+ bucket_paths = []
286
+ try :
287
+ sagemaker .utils .generate_tensorboard_url (domain , bucket_paths )
288
+ except AttributeError as error :
289
+ assert str (error ) == "bucket_paths parameter should not be empty list"
290
+
291
+
292
+ def test_generate_tensorboard_url_bucket_paths_with_empty_string ():
293
+ domain = "jupyterlab.us-east-2.abcdefgh.com"
294
+ bucket_paths = ["" ]
295
+ try :
296
+ sagemaker .utils .generate_tensorboard_url (domain , bucket_paths )
297
+ except AttributeError as error :
298
+ assert str (error ) == "bucket_paths element should not be empty"
299
+
300
+
301
+ def test_generate_tensorboard_url_domain_non_string ():
302
+ domain = None
303
+ bucket_paths = ["bucket1/path1" ]
304
+ try :
305
+ sagemaker .utils .generate_tensorboard_url (domain , bucket_paths )
306
+ except AttributeError as error :
307
+ assert str (error ) == "domain parameter should be string"
308
+
309
+
211
310
@patch ("os.makedirs" )
212
311
def test_download_folder (makedirs ):
213
312
boto_mock = Mock (name = "boto_session" )
0 commit comments