Skip to content

Commit 2fef16f

Browse files
Add agent request wrapper internal reuse architecture guard
Co-authored-by: Shri Sukhani <shrisukhani@users.noreply.github.com>
1 parent fc479f4 commit 2fef16f

File tree

3 files changed

+36
-0
lines changed

3 files changed

+36
-0
lines changed

CONTRIBUTING.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ This runs lint, format checks, compile checks, tests, and package build.
8181
- `tests/test_agent_operation_metadata_usage.py` (shared agent operation-metadata usage enforcement),
8282
- `tests/test_agent_payload_helper_usage.py` (shared agent start-payload helper usage enforcement),
8383
- `tests/test_agent_request_internal_reuse.py` (shared agent helper internal reuse of shared job request helpers),
84+
- `tests/test_agent_request_wrapper_internal_reuse.py` (agent request-wrapper internal reuse of shared job request helpers),
8485
- `tests/test_agent_route_builder_usage.py` (shared agent read/stop route-builder usage enforcement),
8586
- `tests/test_agent_start_helper_usage.py` (shared agent start-request helper usage enforcement),
8687
- `tests/test_agent_stop_helper_usage.py` (shared agent stop-request helper usage enforcement),
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
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_WRAPPER_EXPECTATIONS = {
9+
"hyperbrowser/client/managers/agent_start_utils.py": {
10+
"start_agent_task": ("start_job(",),
11+
"start_agent_task_async": ("start_job_async(",),
12+
},
13+
"hyperbrowser/client/managers/agent_task_read_utils.py": {
14+
"get_agent_task": ("get_job(",),
15+
"get_agent_task_status": ("get_job_status(",),
16+
"get_agent_task_async": ("get_job_async(",),
17+
"get_agent_task_status_async": ("get_job_status_async(",),
18+
},
19+
"hyperbrowser/client/managers/agent_stop_utils.py": {
20+
"stop_agent_task": ("put_job_action(", 'action_suffix="/stop"'),
21+
"stop_agent_task_async": ("put_job_action_async(", 'action_suffix="/stop"'),
22+
},
23+
}
24+
25+
26+
def test_agent_request_wrappers_delegate_to_expected_job_helpers():
27+
for module_path, wrapper_expectations in MODULE_WRAPPER_EXPECTATIONS.items():
28+
function_sources = collect_function_sources(module_path)
29+
for wrapper_name, expected_markers in wrapper_expectations.items():
30+
wrapper_source = function_sources[wrapper_name]
31+
for expected_marker in expected_markers:
32+
assert expected_marker in wrapper_source
33+
assert "client.transport." not in wrapper_source
34+
assert "parse_response_model(" not in wrapper_source

tests/test_architecture_marker_usage.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
"tests/test_agent_operation_metadata_usage.py",
1212
"tests/test_agent_payload_helper_usage.py",
1313
"tests/test_agent_request_internal_reuse.py",
14+
"tests/test_agent_request_wrapper_internal_reuse.py",
1415
"tests/test_agent_route_builder_usage.py",
1516
"tests/test_agent_start_helper_usage.py",
1617
"tests/test_agent_task_read_helper_usage.py",

0 commit comments

Comments
 (0)