@@ -147,49 +147,54 @@ def add_options_to_hyperparameter(*largs, **kwargs):
147
147
)
148
148
149
149
hyperparameter_to_test ["batch-size" ] = "0"
150
- with pytest .raises (JumpStartHyperparametersError ):
150
+ with pytest .raises (JumpStartHyperparametersError ) as e :
151
151
hyperparameters .validate (
152
152
region = region ,
153
153
model_id = model_id ,
154
154
model_version = model_version ,
155
155
hyperparameters = hyperparameter_to_test ,
156
156
)
157
+ assert str (e .value ) == ("Hyperparameter 'batch-size' " "can be no less than 1." )
157
158
158
159
hyperparameter_to_test ["batch-size" ] = "-1"
159
- with pytest .raises (JumpStartHyperparametersError ):
160
+ with pytest .raises (JumpStartHyperparametersError ) as e :
160
161
hyperparameters .validate (
161
162
region = region ,
162
163
model_id = model_id ,
163
164
model_version = model_version ,
164
165
hyperparameters = hyperparameter_to_test ,
165
166
)
167
+ assert str (e .value ) == ("Hyperparameter 'batch-size' can be no " "less than 1." )
166
168
167
169
hyperparameter_to_test ["batch-size" ] = "-1.5"
168
- with pytest .raises (JumpStartHyperparametersError ):
170
+ with pytest .raises (JumpStartHyperparametersError ) as e :
169
171
hyperparameters .validate (
170
172
region = region ,
171
173
model_id = model_id ,
172
174
model_version = model_version ,
173
175
hyperparameters = hyperparameter_to_test ,
174
176
)
177
+ assert str (e .value ) == ("Hyperparameter 'batch-size' must be " "integer type ('-1.5')." )
175
178
176
179
hyperparameter_to_test ["batch-size" ] = "1.5"
177
- with pytest .raises (JumpStartHyperparametersError ):
180
+ with pytest .raises (JumpStartHyperparametersError ) as e :
178
181
hyperparameters .validate (
179
182
region = region ,
180
183
model_id = model_id ,
181
184
model_version = model_version ,
182
185
hyperparameters = hyperparameter_to_test ,
183
186
)
187
+ assert str (e .value ) == ("Hyperparameter 'batch-size' must be integer " "type ('1.5')." )
184
188
185
189
hyperparameter_to_test ["batch-size" ] = "99999"
186
- with pytest .raises (JumpStartHyperparametersError ):
190
+ with pytest .raises (JumpStartHyperparametersError ) as e :
187
191
hyperparameters .validate (
188
192
region = region ,
189
193
model_id = model_id ,
190
194
model_version = model_version ,
191
195
hyperparameters = hyperparameter_to_test ,
192
196
)
197
+ assert str (e .value ) == ("Hyperparameter 'batch-size' can be no greater " "than 1024." )
193
198
194
199
hyperparameter_to_test ["batch-size" ] = 5
195
200
hyperparameters .validate (
@@ -210,13 +215,17 @@ def add_options_to_hyperparameter(*largs, **kwargs):
210
215
)
211
216
for val in [None , "" , 5 , "Truesday" , "Falsehood" ]:
212
217
hyperparameter_to_test ["test_bool_param" ] = val
213
- with pytest .raises (JumpStartHyperparametersError ):
218
+ with pytest .raises (JumpStartHyperparametersError ) as e :
214
219
hyperparameters .validate (
215
220
region = region ,
216
221
model_id = model_id ,
217
222
model_version = model_version ,
218
223
hyperparameters = hyperparameter_to_test ,
219
224
)
225
+ assert str (e .value ) == (
226
+ "Expecting boolean valued hyperparameter, " f"but got '{ str (val )} '."
227
+ )
228
+
220
229
hyperparameter_to_test ["test_bool_param" ] = original_bool_val
221
230
222
231
original_exclusive_min_val = hyperparameter_to_test ["test_exclusive_min_param" ]
@@ -230,13 +239,16 @@ def add_options_to_hyperparameter(*largs, **kwargs):
230
239
)
231
240
for val in [1 , 1 - 1e-99 , - 99 ]:
232
241
hyperparameter_to_test ["test_exclusive_min_param" ] = val
233
- with pytest .raises (JumpStartHyperparametersError ):
242
+ with pytest .raises (JumpStartHyperparametersError ) as e :
234
243
hyperparameters .validate (
235
244
region = region ,
236
245
model_id = model_id ,
237
246
model_version = model_version ,
238
247
hyperparameters = hyperparameter_to_test ,
239
248
)
249
+ assert str (e .value ) == (
250
+ "Hyperparameter 'test_exclusive_min_param' must " "be greater than 1."
251
+ )
240
252
hyperparameter_to_test ["test_exclusive_min_param" ] = original_exclusive_min_val
241
253
242
254
original_exclusive_max_val = hyperparameter_to_test ["test_exclusive_max_param" ]
@@ -250,13 +262,15 @@ def add_options_to_hyperparameter(*largs, **kwargs):
250
262
)
251
263
for val in [4 , 5 , 99 ]:
252
264
hyperparameter_to_test ["test_exclusive_max_param" ] = val
253
- with pytest .raises (JumpStartHyperparametersError ):
265
+ with pytest .raises (JumpStartHyperparametersError ) as e :
254
266
hyperparameters .validate (
255
267
region = region ,
256
268
model_id = model_id ,
257
269
model_version = model_version ,
258
270
hyperparameters = hyperparameter_to_test ,
259
271
)
272
+ assert str (e .value ) == "Hyperparameter 'test_exclusive_max_param' must be less than 4."
273
+
260
274
hyperparameter_to_test ["test_exclusive_max_param" ] = original_exclusive_max_val
261
275
262
276
original_exclusive_max_text_val = hyperparameter_to_test ["test_exclusive_max_param_text" ]
@@ -270,13 +284,17 @@ def add_options_to_hyperparameter(*largs, **kwargs):
270
284
)
271
285
for val in ["123456" , "123456789" ]:
272
286
hyperparameter_to_test ["test_exclusive_max_param_text" ] = val
273
- with pytest .raises (JumpStartHyperparametersError ):
287
+ with pytest .raises (JumpStartHyperparametersError ) as e :
274
288
hyperparameters .validate (
275
289
region = region ,
276
290
model_id = model_id ,
277
291
model_version = model_version ,
278
292
hyperparameters = hyperparameter_to_test ,
279
293
)
294
+ assert (
295
+ str (e .value )
296
+ == "Hyperparameter 'test_exclusive_max_param_text' must have length less than 6."
297
+ )
280
298
hyperparameter_to_test ["test_exclusive_max_param_text" ] = original_exclusive_max_text_val
281
299
282
300
original_max_text_val = hyperparameter_to_test ["test_max_param_text" ]
@@ -290,13 +308,17 @@ def add_options_to_hyperparameter(*largs, **kwargs):
290
308
)
291
309
for val in ["1234567" , "123456789" ]:
292
310
hyperparameter_to_test ["test_max_param_text" ] = val
293
- with pytest .raises (JumpStartHyperparametersError ):
311
+ with pytest .raises (JumpStartHyperparametersError ) as e :
294
312
hyperparameters .validate (
295
313
region = region ,
296
314
model_id = model_id ,
297
315
model_version = model_version ,
298
316
hyperparameters = hyperparameter_to_test ,
299
317
)
318
+ assert (
319
+ str (e .value )
320
+ == "Hyperparameter 'test_max_param_text' must have length no greater than 6."
321
+ )
300
322
hyperparameter_to_test ["test_max_param_text" ] = original_max_text_val
301
323
302
324
original_exclusive_min_text_val = hyperparameter_to_test ["test_exclusive_min_param_text" ]
@@ -310,13 +332,16 @@ def add_options_to_hyperparameter(*largs, **kwargs):
310
332
)
311
333
for val in ["1" , "d" , "" ]:
312
334
hyperparameter_to_test ["test_exclusive_min_param_text" ] = val
313
- with pytest .raises (JumpStartHyperparametersError ):
335
+ with pytest .raises (JumpStartHyperparametersError ) as e :
314
336
hyperparameters .validate (
315
337
region = region ,
316
338
model_id = model_id ,
317
339
model_version = model_version ,
318
340
hyperparameters = hyperparameter_to_test ,
319
341
)
342
+ assert str (e .value ) == (
343
+ "Hyperparameter 'test_exclusive_min_param_text' must have length greater " "than 1."
344
+ )
320
345
hyperparameter_to_test ["test_exclusive_min_param_text" ] = original_exclusive_min_text_val
321
346
322
347
original_min_text_val = hyperparameter_to_test ["test_min_param_text" ]
@@ -330,24 +355,31 @@ def add_options_to_hyperparameter(*largs, **kwargs):
330
355
)
331
356
for val in ["" ]:
332
357
hyperparameter_to_test ["test_min_param_text" ] = val
333
- with pytest .raises (JumpStartHyperparametersError ):
358
+ with pytest .raises (JumpStartHyperparametersError ) as e :
334
359
hyperparameters .validate (
335
360
region = region ,
336
361
model_id = model_id ,
337
362
model_version = model_version ,
338
363
hyperparameters = hyperparameter_to_test ,
339
364
)
365
+ assert str (e .value ) == (
366
+ "Hyperparameter 'test_min_param_text' " "must have length no less than 1."
367
+ )
340
368
hyperparameter_to_test ["test_min_param_text" ] = original_min_text_val
341
369
342
370
del hyperparameter_to_test ["batch-size" ]
343
371
hyperparameter_to_test ["penalty" ] = "blah"
344
- with pytest .raises (JumpStartHyperparametersError ):
372
+ with pytest .raises (JumpStartHyperparametersError ) as e :
345
373
hyperparameters .validate (
346
374
region = region ,
347
375
model_id = model_id ,
348
376
model_version = model_version ,
349
377
hyperparameters = hyperparameter_to_test ,
350
378
)
379
+ assert str (e .value ) == (
380
+ "Hyperparameter 'penalty' must have one of the following values: l1, l2, elasticnet,"
381
+ " none."
382
+ )
351
383
352
384
hyperparameter_to_test ["penalty" ] = "elasticnet"
353
385
hyperparameters .validate (
@@ -411,14 +443,15 @@ def add_options_to_hyperparameter(*largs, **kwargs):
411
443
)
412
444
413
445
del hyperparameter_to_test ["adam-learning-rate" ]
414
- with pytest .raises (JumpStartHyperparametersError ):
446
+ with pytest .raises (JumpStartHyperparametersError ) as e :
415
447
hyperparameters .validate (
416
448
region = region ,
417
449
model_id = model_id ,
418
450
model_version = model_version ,
419
451
hyperparameters = hyperparameter_to_test ,
420
452
validation_mode = HyperparameterValidationMode .VALIDATE_ALGORITHM ,
421
453
)
454
+ assert str (e .value ) == "Cannot find algorithm hyperparameter for 'adam-learning-rate'."
422
455
423
456
424
457
@patch ("sagemaker.jumpstart.accessors.JumpStartModelsAccessor.get_model_specs" )
@@ -454,28 +487,30 @@ def test_jumpstart_validate_all_hyperparameters(patched_get_model_specs):
454
487
455
488
del hyperparameter_to_test ["sagemaker_submit_directory" ]
456
489
457
- with pytest .raises (JumpStartHyperparametersError ):
490
+ with pytest .raises (JumpStartHyperparametersError ) as e :
458
491
hyperparameters .validate (
459
492
region = region ,
460
493
model_id = model_id ,
461
494
model_version = model_version ,
462
495
hyperparameters = hyperparameter_to_test ,
463
496
validation_mode = HyperparameterValidationMode .VALIDATE_ALL ,
464
497
)
498
+ assert str (e .value ) == "Cannot find hyperparameter for 'sagemaker_submit_directory'."
465
499
466
500
hyperparameter_to_test [
467
501
"sagemaker_submit_directory"
468
502
] = "/opt/ml/input/data/code/sourcedir.tar.gz"
469
503
del hyperparameter_to_test ["epochs" ]
470
504
471
- with pytest .raises (JumpStartHyperparametersError ):
505
+ with pytest .raises (JumpStartHyperparametersError ) as e :
472
506
hyperparameters .validate (
473
507
region = region ,
474
508
model_id = model_id ,
475
509
model_version = model_version ,
476
510
hyperparameters = hyperparameter_to_test ,
477
511
validation_mode = HyperparameterValidationMode .VALIDATE_ALL ,
478
512
)
513
+ assert str (e .value ) == "Cannot find hyperparameter for 'epochs'."
479
514
480
515
hyperparameter_to_test ["epochs" ] = "3"
481
516
0 commit comments