55import hyperbrowser .client .managers .extension_request_utils as extension_request_utils
66
77
8- def test_create_extension_resource_uses_post_and_parses_response ():
8+ def test_create_extension_resource_delegates_to_post_model_request ():
99 captured = {}
1010
11- class _SyncTransport :
12- def post (self , url , data = None , files = None ):
13- captured ["url" ] = url
14- captured ["data" ] = data
15- captured ["files" ] = files
16- return SimpleNamespace (data = {"id" : "ext_1" })
17-
18- class _Client :
19- transport = _SyncTransport ()
20-
21- @staticmethod
22- def _build_url (path : str ) -> str :
23- return f"https://api.example.test{ path } "
24-
25- def _fake_parse_response_model (data , ** kwargs ):
26- captured ["parse_data" ] = data
27- captured ["parse_kwargs" ] = kwargs
11+ def _fake_post_model_request (** kwargs ):
12+ captured .update (kwargs )
2813 return {"parsed" : True }
2914
30- original_parse = extension_request_utils .parse_response_model
31- extension_request_utils .parse_response_model = _fake_parse_response_model
15+ original = extension_request_utils .post_model_request
16+ extension_request_utils .post_model_request = _fake_post_model_request
3217 try :
3318 file_stream = BytesIO (b"ext" )
3419 result = extension_request_utils .create_extension_resource (
35- client = _Client (),
20+ client = object (),
3621 route_path = "/extensions/add" ,
3722 payload = {"name" : "ext" },
3823 file_stream = file_stream ,
3924 model = object ,
4025 operation_name = "create extension" ,
4126 )
4227 finally :
43- extension_request_utils .parse_response_model = original_parse
28+ extension_request_utils .post_model_request = original
4429
4530 assert result == {"parsed" : True }
46- assert captured ["url " ] == "https://api.example.test /extensions/add"
31+ assert captured ["route_path " ] == "/extensions/add"
4732 assert captured ["data" ] == {"name" : "ext" }
4833 assert captured ["files" ] == {"file" : file_stream }
49- assert captured ["parse_data" ] == {"id" : "ext_1" }
50- assert captured ["parse_kwargs" ]["operation_name" ] == "create extension"
34+ assert captured ["operation_name" ] == "create extension"
5135
5236
5337def test_list_extension_resources_uses_get_and_extension_parser ():
@@ -86,35 +70,20 @@ def _fake_parse_extension_list_response_data(data):
8670 assert captured ["parse_data" ] == {"extensions" : []}
8771
8872
89- def test_create_extension_resource_async_uses_post_and_parses_response ():
73+ def test_create_extension_resource_async_delegates_to_post_model_request_async ():
9074 captured = {}
9175
92- class _AsyncTransport :
93- async def post (self , url , data = None , files = None ):
94- captured ["url" ] = url
95- captured ["data" ] = data
96- captured ["files" ] = files
97- return SimpleNamespace (data = {"id" : "ext_2" })
98-
99- class _Client :
100- transport = _AsyncTransport ()
101-
102- @staticmethod
103- def _build_url (path : str ) -> str :
104- return f"https://api.example.test{ path } "
105-
106- def _fake_parse_response_model (data , ** kwargs ):
107- captured ["parse_data" ] = data
108- captured ["parse_kwargs" ] = kwargs
76+ async def _fake_post_model_request_async (** kwargs ):
77+ captured .update (kwargs )
10978 return {"parsed" : True }
11079
111- original_parse = extension_request_utils .parse_response_model
112- extension_request_utils .parse_response_model = _fake_parse_response_model
80+ original = extension_request_utils .post_model_request_async
81+ extension_request_utils .post_model_request_async = _fake_post_model_request_async
11382 try :
11483 file_stream = BytesIO (b"ext" )
11584 result = asyncio .run (
11685 extension_request_utils .create_extension_resource_async (
117- client = _Client (),
86+ client = object (),
11887 route_path = "/extensions/add" ,
11988 payload = {"name" : "ext" },
12089 file_stream = file_stream ,
@@ -123,14 +92,13 @@ def _fake_parse_response_model(data, **kwargs):
12392 )
12493 )
12594 finally :
126- extension_request_utils .parse_response_model = original_parse
95+ extension_request_utils .post_model_request_async = original
12796
12897 assert result == {"parsed" : True }
129- assert captured ["url " ] == "https://api.example.test /extensions/add"
98+ assert captured ["route_path " ] == "/extensions/add"
13099 assert captured ["data" ] == {"name" : "ext" }
131100 assert captured ["files" ] == {"file" : file_stream }
132- assert captured ["parse_data" ] == {"id" : "ext_2" }
133- assert captured ["parse_kwargs" ]["operation_name" ] == "create extension"
101+ assert captured ["operation_name" ] == "create extension"
134102
135103
136104def test_list_extension_resources_async_uses_get_and_extension_parser ():
0 commit comments