|
1 | 1 | import asyncio |
2 | 2 | from io import BytesIO |
3 | | -from types import SimpleNamespace |
4 | 3 |
|
5 | 4 | import hyperbrowser.client.managers.extension_request_utils as extension_request_utils |
6 | 5 |
|
@@ -37,36 +36,31 @@ def _fake_post_model_request(**kwargs): |
37 | 36 | def test_list_extension_resources_uses_get_and_extension_parser(): |
38 | 37 | captured = {} |
39 | 38 |
|
40 | | - class _SyncTransport: |
41 | | - def get(self, url): |
42 | | - captured["url"] = url |
43 | | - return SimpleNamespace(data={"extensions": []}) |
44 | | - |
45 | | - class _Client: |
46 | | - transport = _SyncTransport() |
47 | | - |
48 | | - @staticmethod |
49 | | - def _build_url(path: str) -> str: |
50 | | - return f"https://api.example.test{path}" |
| 39 | + def _fake_get_model_response_data(**kwargs): |
| 40 | + captured.update(kwargs) |
| 41 | + return {"extensions": []} |
51 | 42 |
|
52 | 43 | def _fake_parse_extension_list_response_data(data): |
53 | 44 | captured["parse_data"] = data |
54 | 45 | return ["parsed"] |
55 | 46 |
|
| 47 | + original_get_data = extension_request_utils.get_model_response_data |
56 | 48 | original_parse = extension_request_utils.parse_extension_list_response_data |
| 49 | + extension_request_utils.get_model_response_data = _fake_get_model_response_data |
57 | 50 | extension_request_utils.parse_extension_list_response_data = ( |
58 | 51 | _fake_parse_extension_list_response_data |
59 | 52 | ) |
60 | 53 | try: |
61 | 54 | result = extension_request_utils.list_extension_resources( |
62 | | - client=_Client(), |
| 55 | + client=object(), |
63 | 56 | route_path="/extensions/list", |
64 | 57 | ) |
65 | 58 | finally: |
| 59 | + extension_request_utils.get_model_response_data = original_get_data |
66 | 60 | extension_request_utils.parse_extension_list_response_data = original_parse |
67 | 61 |
|
68 | 62 | assert result == ["parsed"] |
69 | | - assert captured["url"] == "https://api.example.test/extensions/list" |
| 63 | + assert captured["route_path"] == "/extensions/list" |
70 | 64 | assert captured["parse_data"] == {"extensions": []} |
71 | 65 |
|
72 | 66 |
|
@@ -104,36 +98,33 @@ async def _fake_post_model_request_async(**kwargs): |
104 | 98 | def test_list_extension_resources_async_uses_get_and_extension_parser(): |
105 | 99 | captured = {} |
106 | 100 |
|
107 | | - class _AsyncTransport: |
108 | | - async def get(self, url): |
109 | | - captured["url"] = url |
110 | | - return SimpleNamespace(data={"extensions": []}) |
111 | | - |
112 | | - class _Client: |
113 | | - transport = _AsyncTransport() |
114 | | - |
115 | | - @staticmethod |
116 | | - def _build_url(path: str) -> str: |
117 | | - return f"https://api.example.test{path}" |
| 101 | + async def _fake_get_model_response_data_async(**kwargs): |
| 102 | + captured.update(kwargs) |
| 103 | + return {"extensions": []} |
118 | 104 |
|
119 | 105 | def _fake_parse_extension_list_response_data(data): |
120 | 106 | captured["parse_data"] = data |
121 | 107 | return ["parsed"] |
122 | 108 |
|
| 109 | + original_get_data = extension_request_utils.get_model_response_data_async |
123 | 110 | original_parse = extension_request_utils.parse_extension_list_response_data |
| 111 | + extension_request_utils.get_model_response_data_async = ( |
| 112 | + _fake_get_model_response_data_async |
| 113 | + ) |
124 | 114 | extension_request_utils.parse_extension_list_response_data = ( |
125 | 115 | _fake_parse_extension_list_response_data |
126 | 116 | ) |
127 | 117 | try: |
128 | 118 | result = asyncio.run( |
129 | 119 | extension_request_utils.list_extension_resources_async( |
130 | | - client=_Client(), |
| 120 | + client=object(), |
131 | 121 | route_path="/extensions/list", |
132 | 122 | ) |
133 | 123 | ) |
134 | 124 | finally: |
| 125 | + extension_request_utils.get_model_response_data_async = original_get_data |
135 | 126 | extension_request_utils.parse_extension_list_response_data = original_parse |
136 | 127 |
|
137 | 128 | assert result == ["parsed"] |
138 | | - assert captured["url"] == "https://api.example.test/extensions/list" |
| 129 | + assert captured["route_path"] == "/extensions/list" |
139 | 130 | assert captured["parse_data"] == {"extensions": []} |
0 commit comments