Skip to content

Commit f9678d6

Browse files
Add request helper parse import boundary guard
Co-authored-by: Shri Sukhani <shrisukhani@users.noreply.github.com>
1 parent fb4ece4 commit f9678d6

File tree

3 files changed

+26
-0
lines changed

3 files changed

+26
-0
lines changed

CONTRIBUTING.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ This runs lint, format checks, compile checks, tests, and package build.
148148
- `tests/test_profile_team_request_internal_reuse.py` (profile/team request-helper internal reuse of shared model request helpers),
149149
- `tests/test_pyproject_architecture_marker.py` (pytest marker registration enforcement),
150150
- `tests/test_readme_examples_listing.py` (README example-listing consistency enforcement),
151+
- `tests/test_request_helper_parse_import_boundary.py` (request-helper import boundary enforcement for direct response parsing imports),
151152
- `tests/test_schema_injection_helper_usage.py` (shared schema injection helper usage enforcement in payload builders),
152153
- `tests/test_session_operation_metadata_usage.py` (session manager operation-metadata usage enforcement),
153154
- `tests/test_session_profile_update_helper_usage.py` (session profile-update parameter helper usage enforcement),

tests/test_architecture_marker_usage.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
"tests/test_core_type_helper_usage.py",
5151
"tests/test_contributing_architecture_guard_listing.py",
5252
"tests/test_readme_examples_listing.py",
53+
"tests/test_request_helper_parse_import_boundary.py",
5354
"tests/test_examples_syntax.py",
5455
"tests/test_docs_python3_commands.py",
5556
"tests/test_extension_create_helper_usage.py",
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
from pathlib import Path
2+
3+
import pytest
4+
5+
pytestmark = pytest.mark.architecture
6+
7+
8+
REQUEST_HELPER_MODULES = (
9+
"hyperbrowser/client/managers/computer_action_request_utils.py",
10+
"hyperbrowser/client/managers/extension_request_utils.py",
11+
"hyperbrowser/client/managers/job_request_utils.py",
12+
"hyperbrowser/client/managers/profile_request_utils.py",
13+
"hyperbrowser/client/managers/team_request_utils.py",
14+
)
15+
16+
17+
def test_request_helpers_do_not_import_response_utils_directly():
18+
violating_modules: list[str] = []
19+
for module_path in REQUEST_HELPER_MODULES:
20+
module_text = Path(module_path).read_text(encoding="utf-8")
21+
if "response_utils import" in module_text:
22+
violating_modules.append(module_path)
23+
24+
assert violating_modules == []

0 commit comments

Comments
 (0)