|
2 | 2 |
|
3 | 3 | import unittest |
4 | 4 | import asyncio |
5 | | -from unittest.mock import * |
| 5 | +from unittest.mock import ANY, AsyncMock, MagicMock, patch |
6 | 6 | from monitor.websocket_connections import WebsocketServer |
7 | 7 |
|
8 | 8 |
|
9 | 9 | class TestWebsocketServer(unittest.TestCase): |
10 | | - @patch('asyncio.set_event_loop') |
11 | 10 | @patch('monitor.websocket_connections.serve') |
12 | | - def test_init(self, mock_websock_serve, mock_set_loop): |
13 | | - loop = MagicMock() |
| 11 | + def test_init(self, mock_websock_serve): |
| 12 | + loop = asyncio.new_event_loop() |
14 | 13 | logger = MagicMock() |
15 | | - mock_websock_serve.return_value = "0101" |
16 | | - WebsocketServer.connection_handler = MagicMock() |
17 | 14 | server = WebsocketServer(("ip_address", 4512), None, loop, logger) |
18 | 15 |
|
19 | 16 | self.assertEqual(server._loop, loop) |
20 | 17 | self.assertIsNone(server._connections) |
21 | | - mock_set_loop.assert_called_once_with(loop) |
22 | | - mock_websock_serve.assert_called_once_with(server.connection_handler, "ip_address", 4512) |
23 | | - loop.run_until_complete.assert_called_once_with("0101") |
| 18 | + mock_websock_serve.assert_not_called() |
| 19 | + loop.close() |
24 | 20 |
|
25 | 21 | @patch('monitor.websocket_connections.serve') |
26 | 22 | def test_connection_handler(self, mock_websock_serve): |
@@ -56,12 +52,23 @@ def test_connection_handler(self, mock_websock_serve): |
56 | 52 | connection_mock.remove_client.assert_called_once_with("1234", queue) |
57 | 53 |
|
58 | 54 | @patch('asyncio.set_event_loop') |
59 | | - @patch('monitor.websocket_connections.serve') |
| 55 | + @patch('monitor.websocket_connections.serve', new_callable=AsyncMock) |
60 | 56 | def test_run(self, mock_websock_serve, mock_set_loop): |
61 | | - loop = MagicMock() |
| 57 | + loop = asyncio.new_event_loop() |
62 | 58 | logger = MagicMock() |
63 | | - mock_websock_serve.return_value = "0101" |
| 59 | + |
| 60 | + server_obj = MagicMock() |
| 61 | + wait_closed_future = loop.create_future() |
| 62 | + wait_closed_future.set_result(None) |
| 63 | + server_obj.wait_closed.return_value = wait_closed_future |
| 64 | + mock_websock_serve.return_value = server_obj |
| 65 | + |
64 | 66 | server = WebsocketServer(("ip_address", 123), None, loop, logger) |
| 67 | + |
| 68 | + loop.call_later(0.05, loop.stop) |
65 | 69 | server.run() |
| 70 | + |
66 | 71 | mock_set_loop.assert_called_with(loop) |
67 | | - loop.run_forever.assert_called_once_with() |
| 72 | + mock_websock_serve.assert_awaited_once_with(ANY, "ip_address", 123) |
| 73 | + server_obj.close.assert_called_once_with() |
| 74 | + loop.close() |
0 commit comments