Skip to content

Commit 963cf94

Browse files
kjy5CopilotCopilot
authored
Create a loop to make requests (#492)
* Create a loop to make requests * Update src/ephys_link/back_end/server.py Co-authored-by: Copilot <[email protected]> * Update src/ephys_link/back_end/server.py Co-authored-by: Copilot <[email protected]> * Hatch static analysis * Update tests to mock new_event_loop instead of deprecated get_event_loop (#493) * Initial plan * Update tests to mock new_event_loop instead of get_event_loop Co-authored-by: kjy5 <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: Kenneth Yang <[email protected]> --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: Copilot <[email protected]>
1 parent 19e7ec5 commit 963cf94

File tree

2 files changed

+20
-14
lines changed

2 files changed

+20
-14
lines changed

src/ephys_link/back_end/server.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
```
1313
"""
1414

15-
from asyncio import get_event_loop, run
15+
from asyncio import new_event_loop, run
1616
from collections.abc import Callable, Coroutine
1717
from json import JSONDecodeError, dumps, loads
1818
from typing import Any, TypeVar, final
@@ -96,10 +96,16 @@ def launch(self) -> None:
9696

9797
# List platform and available manipulators.
9898
self._console.info_print("PLATFORM", self._platform_handler.get_display_name())
99-
self._console.info_print(
100-
"MANIPULATORS",
101-
str(get_event_loop().run_until_complete(self._platform_handler.get_manipulators()).manipulators),
102-
)
99+
100+
# Create a temporary event loop for getting manipulators
101+
loop = new_event_loop()
102+
try:
103+
self._console.info_print(
104+
"MANIPULATORS",
105+
str(loop.run_until_complete(self._platform_handler.get_manipulators()).manipulators),
106+
)
107+
finally:
108+
loop.close()
103109

104110
# Launch server
105111
if self._options.use_proxy:

tests/back_end/test_server.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,8 @@ def test_launch_server(
8888
patched_run_until_complete = mocker.patch.object(
8989
asyncio_loop, "run_until_complete", return_value=GetManipulatorsResponse(manipulators=DUMMY_STRING_LIST)
9090
)
91-
patched_get_event_loop = mocker.patch.object(
92-
ephys_link.back_end.server, "get_event_loop", return_value=asyncio_loop
91+
patched_new_event_loop = mocker.patch.object(
92+
ephys_link.back_end.server, "new_event_loop", return_value=asyncio_loop
9393
)
9494

9595
# Mock out run_app.
@@ -102,7 +102,7 @@ def test_launch_server(
102102
patched_get_display_name.assert_called_once()
103103
patched_get_manipulators.assert_called_once()
104104
patched_run_until_complete.assert_called_once()
105-
patched_get_event_loop.assert_called_once()
105+
patched_new_event_loop.assert_called_once()
106106
spied_info_print.assert_any_call("PLATFORM", platform_handler.get_display_name())
107107
spied_info_print.assert_any_call("MANIPULATORS", str(DUMMY_STRING_LIST))
108108
mocked_run_app.assert_called_once()
@@ -123,8 +123,8 @@ def test_launch_proxy_client(
123123
patched_run_until_complete = mocker.patch.object(
124124
asyncio_loop, "run_until_complete", return_value=GetManipulatorsResponse(manipulators=DUMMY_STRING_LIST)
125125
)
126-
patched_get_event_loop = mocker.patch.object(
127-
ephys_link.back_end.server, "get_event_loop", return_value=asyncio_loop
126+
patched_new_event_loop = mocker.patch.object(
127+
ephys_link.back_end.server, "new_event_loop", return_value=asyncio_loop
128128
)
129129

130130
# Mock out run.
@@ -143,7 +143,7 @@ def run_coroutine(coroutine: Awaitable[None]) -> None:
143143
patched_get_display_name.assert_called_once()
144144
patched_get_manipulators.assert_called_once()
145145
patched_run_until_complete.assert_called_once()
146-
patched_get_event_loop.assert_called_once()
146+
patched_new_event_loop.assert_called_once()
147147
spied_info_print.assert_any_call("PLATFORM", platform_handler.get_display_name())
148148
spied_info_print.assert_any_call("MANIPULATORS", str(DUMMY_STRING_LIST))
149149
spied_info_print.assert_any_call("PINPOINT ID", mocker.ANY)
@@ -166,8 +166,8 @@ def test_launch_proxy_client_failed_init(
166166
patched_run_until_complete = mocker.patch.object(
167167
asyncio_loop, "run_until_complete", return_value=GetManipulatorsResponse(manipulators=DUMMY_STRING_LIST)
168168
)
169-
patched_get_event_loop = mocker.patch.object(
170-
ephys_link.back_end.server, "get_event_loop", return_value=asyncio_loop
169+
patched_new_event_loop = mocker.patch.object(
170+
ephys_link.back_end.server, "new_event_loop", return_value=asyncio_loop
171171
)
172172

173173
# Mock out run.
@@ -191,7 +191,7 @@ def run_coroutine(coroutine: Awaitable[None]) -> None:
191191
patched_get_display_name.assert_called_once()
192192
patched_get_manipulators.assert_called_once()
193193
patched_run_until_complete.assert_called_once()
194-
patched_get_event_loop.assert_called_once()
194+
patched_new_event_loop.assert_called_once()
195195
spied_info_print.assert_any_call("PLATFORM", platform_handler.get_display_name())
196196
spied_info_print.assert_any_call("MANIPULATORS", str(DUMMY_STRING_LIST))
197197
spied_info_print.assert_any_call("PINPOINT ID", mocker.ANY)

0 commit comments

Comments
 (0)