Skip to content

Commit 549de93

Browse files
Add extension request function parse boundary guard
Co-authored-by: Shri Sukhani <shrisukhani@users.noreply.github.com>
1 parent 19e6af4 commit 549de93

File tree

4 files changed

+35
-0
lines changed

4 files changed

+35
-0
lines changed

CONTRIBUTING.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ This runs lint, format checks, compile checks, tests, and package build.
111111
- `tests/test_extension_create_helper_usage.py` (extension create-input normalization helper usage enforcement),
112112
- `tests/test_extension_operation_metadata_usage.py` (extension manager operation-metadata usage enforcement),
113113
- `tests/test_extension_parse_usage_boundary.py` (centralized extension list parse-helper usage boundary enforcement),
114+
- `tests/test_extension_request_function_parse_boundary.py` (extension-request function-level parser boundary enforcement between create/list wrappers),
114115
- `tests/test_extension_request_helper_usage.py` (extension manager request-helper usage enforcement),
115116
- `tests/test_extension_request_internal_reuse.py` (extension request-helper internal reuse of shared model request helpers),
116117
- `tests/test_extension_route_constants_usage.py` (extension manager route-constant usage enforcement),

tests/test_architecture_marker_usage.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@
6868
"tests/test_examples_naming_convention.py",
6969
"tests/test_extension_operation_metadata_usage.py",
7070
"tests/test_extension_parse_usage_boundary.py",
71+
"tests/test_extension_request_function_parse_boundary.py",
7172
"tests/test_extension_request_helper_usage.py",
7273
"tests/test_extension_request_internal_reuse.py",
7374
"tests/test_extension_route_constants_usage.py",

tests/test_ast_function_source_helper_usage.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
AST_FUNCTION_SOURCE_GUARD_MODULES = (
99
"tests/test_agent_request_wrapper_internal_reuse.py",
10+
"tests/test_extension_request_function_parse_boundary.py",
1011
"tests/test_job_request_route_builder_internal_reuse.py",
1112
"tests/test_job_request_wrapper_internal_reuse.py",
1213
"tests/test_model_request_function_parse_boundary.py",
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import pytest
2+
3+
from tests.ast_function_source_utils import collect_function_sources
4+
5+
pytestmark = pytest.mark.architecture
6+
7+
8+
MODULE_PATH = "hyperbrowser/client/managers/extension_request_utils.py"
9+
10+
CREATE_WRAPPERS = (
11+
"create_extension_resource",
12+
"create_extension_resource_async",
13+
)
14+
15+
LIST_WRAPPERS = (
16+
"list_extension_resources",
17+
"list_extension_resources_async",
18+
)
19+
20+
21+
def test_extension_create_wrappers_do_not_call_extension_list_parser():
22+
function_sources = collect_function_sources(MODULE_PATH)
23+
for function_name in CREATE_WRAPPERS:
24+
function_source = function_sources[function_name]
25+
assert "parse_extension_list_response_data(" not in function_source
26+
27+
28+
def test_extension_list_wrappers_call_extension_list_parser():
29+
function_sources = collect_function_sources(MODULE_PATH)
30+
for function_name in LIST_WRAPPERS:
31+
function_source = function_sources[function_name]
32+
assert "parse_extension_list_response_data(" in function_source

0 commit comments

Comments
 (0)