@@ -394,6 +394,14 @@ def test_polling_helpers_validate_retry_and_interval_configuration():
394394 retry_delay_seconds = 0 ,
395395 )
396396
397+ with pytest .raises (HyperbrowserError , match = "max_attempts must be an integer" ):
398+ retry_operation (
399+ operation_name = "invalid-retry-type" ,
400+ operation = lambda : "ok" ,
401+ max_attempts = 1.5 , # type: ignore[arg-type]
402+ retry_delay_seconds = 0 ,
403+ )
404+
397405 with pytest .raises (
398406 HyperbrowserError , match = "retry_delay_seconds must be non-negative"
399407 ):
@@ -416,6 +424,18 @@ def test_polling_helpers_validate_retry_and_interval_configuration():
416424 max_status_failures = 0 ,
417425 )
418426
427+ with pytest .raises (
428+ HyperbrowserError , match = "max_status_failures must be an integer"
429+ ):
430+ poll_until_terminal_status (
431+ operation_name = "invalid-status-failures-type" ,
432+ get_status = lambda : "completed" ,
433+ is_terminal_status = lambda value : value == "completed" ,
434+ poll_interval_seconds = 0.1 ,
435+ max_wait_seconds = 1.0 ,
436+ max_status_failures = 1.5 , # type: ignore[arg-type]
437+ )
438+
419439 with pytest .raises (
420440 HyperbrowserError , match = "poll_interval_seconds must be non-negative"
421441 ):
@@ -427,6 +447,17 @@ def test_polling_helpers_validate_retry_and_interval_configuration():
427447 max_wait_seconds = 1.0 ,
428448 )
429449
450+ with pytest .raises (
451+ HyperbrowserError , match = "poll_interval_seconds must be a number"
452+ ):
453+ poll_until_terminal_status (
454+ operation_name = "invalid-poll-interval-type" ,
455+ get_status = lambda : "completed" ,
456+ is_terminal_status = lambda value : value == "completed" ,
457+ poll_interval_seconds = "0.1" , # type: ignore[arg-type]
458+ max_wait_seconds = 1.0 ,
459+ )
460+
430461 with pytest .raises (
431462 HyperbrowserError , match = "max_wait_seconds must be non-negative"
432463 ):
@@ -440,3 +471,15 @@ def test_polling_helpers_validate_retry_and_interval_configuration():
440471 max_attempts = 1 ,
441472 retry_delay_seconds = 0.0 ,
442473 )
474+
475+ with pytest .raises (HyperbrowserError , match = "max_wait_seconds must be a number" ):
476+ collect_paginated_results (
477+ operation_name = "invalid-max-wait-type" ,
478+ get_next_page = lambda page : {"current" : 1 , "total" : 1 , "items" : []},
479+ get_current_page_batch = lambda response : response ["current" ],
480+ get_total_page_batches = lambda response : response ["total" ],
481+ on_page_success = lambda response : None ,
482+ max_wait_seconds = "1" , # type: ignore[arg-type]
483+ max_attempts = 1 ,
484+ retry_delay_seconds = 0.0 ,
485+ )
0 commit comments