Skip to content

Commit 74be9a4

Browse files
Normalize trailing prefix whitespace in operation-name builder
Co-authored-by: Shri Sukhani <shrisukhani@users.noreply.github.com>
1 parent ca34656 commit 74be9a4

2 files changed

Lines changed: 24 additions & 0 deletions

File tree

hyperbrowser/client/polling.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,12 @@ def build_operation_name(prefix: object, identifier: object) -> str:
8383
for character in normalized_prefix
8484
)
8585
normalized_prefix = normalized_prefix.lstrip()
86+
has_trailing_whitespace = (
87+
bool(normalized_prefix) and normalized_prefix[-1].isspace()
88+
)
89+
normalized_prefix = normalized_prefix.rstrip()
90+
if has_trailing_whitespace and normalized_prefix:
91+
normalized_prefix = f"{normalized_prefix} "
8692
raw_identifier = _coerce_operation_name_component(identifier, fallback="unknown")
8793
normalized_identifier = raw_identifier.strip()
8894
if not normalized_identifier:

tests/test_polling.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,24 @@ def test_build_operation_name_trims_leading_whitespace_from_prefix_text():
172172
assert operation_name == "crawl job 123"
173173

174174

175+
def test_build_operation_name_collapses_trailing_prefix_whitespace():
176+
operation_name = build_operation_name(
177+
"crawl job ",
178+
"123",
179+
)
180+
181+
assert operation_name == "crawl job 123"
182+
183+
184+
def test_build_operation_name_handles_large_trailing_prefix_whitespace():
185+
operation_name = build_operation_name(
186+
"a" + (" " * 500),
187+
"b",
188+
)
189+
190+
assert operation_name == "a b"
191+
192+
175193
def test_build_operation_name_uses_full_length_budget_after_prefix_lstrip():
176194
operation_name = build_operation_name(
177195
" crawl job ",

0 commit comments

Comments
 (0)