Skip to content

Commit dd836d2

Browse files
Preserve polling numeric conversion errors
Co-authored-by: Shri Sukhani <shrisukhani@users.noreply.github.com>
1 parent 3f8221d commit dd836d2

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

hyperbrowser/client/polling.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,11 @@ def _normalize_non_negative_real(value: float, *, field_name: str) -> float:
8282
raise HyperbrowserError(f"{field_name} must be a number")
8383
try:
8484
normalized_value = float(value)
85-
except (TypeError, ValueError, OverflowError):
86-
raise HyperbrowserError(f"{field_name} must be finite")
85+
except (TypeError, ValueError, OverflowError) as exc:
86+
raise HyperbrowserError(
87+
f"{field_name} must be finite",
88+
original_error=exc,
89+
) from exc
8790
try:
8891
is_finite = math.isfinite(normalized_value)
8992
except (TypeError, ValueError, OverflowError):

tests/test_polling.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6576,7 +6576,9 @@ def test_polling_helpers_validate_retry_and_interval_configuration():
65766576
retry_delay_seconds=0.0,
65776577
)
65786578

6579-
with pytest.raises(HyperbrowserError, match="poll_interval_seconds must be finite"):
6579+
with pytest.raises(
6580+
HyperbrowserError, match="poll_interval_seconds must be finite"
6581+
) as exc_info:
65806582
poll_until_terminal_status(
65816583
operation_name="invalid-poll-interval-overflowing-real",
65826584
get_status=lambda: "completed",
@@ -6585,6 +6587,8 @@ def test_polling_helpers_validate_retry_and_interval_configuration():
65856587
max_wait_seconds=1.0,
65866588
)
65876589

6590+
assert exc_info.value.original_error is not None
6591+
65886592
async def validate_async_operation_name() -> None:
65896593
with pytest.raises(HyperbrowserError, match="operation_name must not be empty"):
65906594
await poll_until_terminal_status_async(

0 commit comments

Comments
 (0)