Skip to content

Commit d7b6825

Browse files
Add session recording key-display import boundary guard
Co-authored-by: Shri Sukhani <shrisukhani@users.noreply.github.com>
1 parent 07ad42e commit d7b6825

File tree

4 files changed

+28
-0
lines changed

4 files changed

+28
-0
lines changed

CONTRIBUTING.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,7 @@ This runs lint, format checks, compile checks, tests, and package build.
215215
- `tests/test_session_parse_usage_boundary.py` (centralized session parse-helper usage boundary enforcement),
216216
- `tests/test_session_profile_update_helper_usage.py` (session profile-update parameter helper usage enforcement),
217217
- `tests/test_session_recording_key_display_helper_usage.py` (session recording key-display helper usage enforcement),
218+
- `tests/test_session_recording_key_display_import_boundary.py` (session recording key-display helper import boundary enforcement),
218219
- `tests/test_session_recordings_follow_redirects_boundary.py` (session recordings wrapper follow-redirect enforcement boundary),
219220
- `tests/test_session_request_function_parse_boundary.py` (session-request function-level parse boundary enforcement between parsed wrappers and resource helpers),
220221
- `tests/test_session_request_helper_usage.py` (session manager request-helper usage enforcement),

tests/test_architecture_marker_usage.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@
147147
"tests/test_session_operation_metadata_usage.py",
148148
"tests/test_session_parse_usage_boundary.py",
149149
"tests/test_session_profile_update_helper_usage.py",
150+
"tests/test_session_recording_key_display_import_boundary.py",
150151
"tests/test_session_recording_key_display_helper_usage.py",
151152
"tests/test_session_recordings_follow_redirects_boundary.py",
152153
"tests/test_session_request_function_parse_boundary.py",

tests/test_display_utils_import_boundary.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
"tests/test_display_utils.py",
1515
"tests/test_display_utils_import_boundary.py",
1616
"tests/test_extension_key_display_import_boundary.py",
17+
"tests/test_session_recording_key_display_import_boundary.py",
1718
)
1819

1920

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import ast
2+
from pathlib import Path
3+
4+
import pytest
5+
6+
pytestmark = pytest.mark.architecture
7+
8+
SESSION_UTILS_MODULE = Path("hyperbrowser/client/managers/session_utils.py")
9+
10+
11+
def _imports_format_string_key_for_error(module_text: str) -> bool:
12+
module_ast = ast.parse(module_text)
13+
for node in module_ast.body:
14+
if not isinstance(node, ast.ImportFrom):
15+
continue
16+
if node.module != "hyperbrowser.display_utils":
17+
continue
18+
if any(alias.name == "format_string_key_for_error" for alias in node.names):
19+
return True
20+
return False
21+
22+
23+
def test_session_recording_key_display_helper_is_imported_from_display_utils():
24+
module_text = SESSION_UTILS_MODULE.read_text(encoding="utf-8")
25+
assert _imports_format_string_key_for_error(module_text)

0 commit comments

Comments
 (0)