47 lines
1.5 KiB
Python
47 lines
1.5 KiB
Python
"""
|
|
This program has been developed by students from the bachelor Computer Science at Utrecht
|
|
University within the Software Project course.
|
|
© Copyright Utrecht University (Department of Information and Computing Sciences)
|
|
"""
|
|
|
|
from unittest.mock import MagicMock, patch
|
|
|
|
import zmq
|
|
|
|
from control_backend.main import setup_sockets
|
|
|
|
|
|
def test_setup_sockets_proxy():
|
|
mock_context = MagicMock()
|
|
mock_pub = MagicMock()
|
|
mock_sub = MagicMock()
|
|
|
|
mock_context.socket.side_effect = [mock_pub, mock_sub]
|
|
|
|
with patch("zmq.asyncio.Context.instance", return_value=mock_context):
|
|
with patch("zmq.proxy") as mock_proxy:
|
|
setup_sockets()
|
|
|
|
mock_pub.bind.assert_called()
|
|
mock_sub.bind.assert_called()
|
|
mock_proxy.assert_called_with(mock_sub, mock_pub)
|
|
|
|
# Check cleanup
|
|
mock_pub.close.assert_called()
|
|
mock_sub.close.assert_called()
|
|
|
|
|
|
def test_setup_sockets_proxy_error():
|
|
mock_context = MagicMock()
|
|
mock_pub = MagicMock()
|
|
mock_sub = MagicMock()
|
|
mock_context.socket.side_effect = [mock_pub, mock_sub]
|
|
|
|
with patch("zmq.asyncio.Context.instance", return_value=mock_context):
|
|
with patch("zmq.proxy", side_effect=zmq.ZMQError):
|
|
with patch("control_backend.main.logger") as mock_logger:
|
|
setup_sockets()
|
|
mock_logger.warning.assert_called()
|
|
mock_pub.close.assert_called()
|
|
mock_sub.close.assert_called()
|