Gateway tests

This commit is contained in:
Cyber MacGeddon 2025-07-12 17:15:16 +01:00
parent 4e71679e5a
commit 6ecaca88e0
3 changed files with 34 additions and 18 deletions

View file

@ -74,7 +74,9 @@ class TestServiceRequestor:
"""Test ServiceRequestor start method""" """Test ServiceRequestor start method"""
mock_pulsar_client = MagicMock() mock_pulsar_client = MagicMock()
mock_sub_instance = AsyncMock() mock_sub_instance = AsyncMock()
mock_pub_instance = AsyncMock()
mock_subscriber.return_value = mock_sub_instance mock_subscriber.return_value = mock_sub_instance
mock_publisher.return_value = mock_pub_instance
requestor = ServiceRequestor( requestor = ServiceRequestor(
pulsar_client=mock_pulsar_client, pulsar_client=mock_pulsar_client,
@ -87,8 +89,9 @@ class TestServiceRequestor:
# Call start # Call start
await requestor.start() await requestor.start()
# Verify subscriber start was called # Verify both subscriber and publisher start were called
mock_sub_instance.start.assert_called_once() mock_sub_instance.start.assert_called_once()
mock_pub_instance.start.assert_called_once()
assert requestor.running is True assert requestor.running is True
@patch('trustgraph.gateway.dispatch.requestor.Publisher') @patch('trustgraph.gateway.dispatch.requestor.Publisher')
@ -96,8 +99,8 @@ class TestServiceRequestor:
def test_service_requestor_attributes(self, mock_subscriber, mock_publisher): def test_service_requestor_attributes(self, mock_subscriber, mock_publisher):
"""Test ServiceRequestor has correct attributes""" """Test ServiceRequestor has correct attributes"""
mock_pulsar_client = MagicMock() mock_pulsar_client = MagicMock()
mock_pub_instance = MagicMock() mock_pub_instance = AsyncMock()
mock_sub_instance = MagicMock() mock_sub_instance = AsyncMock()
mock_publisher.return_value = mock_pub_instance mock_publisher.return_value = mock_pub_instance
mock_subscriber.return_value = mock_sub_instance mock_subscriber.return_value = mock_sub_instance

View file

@ -22,7 +22,8 @@ class TestEndpointManager:
mock_dispatcher_manager.dispatch_flow_service.return_value = MagicMock() mock_dispatcher_manager.dispatch_flow_service.return_value = MagicMock()
mock_dispatcher_manager.dispatch_flow_import.return_value = MagicMock() mock_dispatcher_manager.dispatch_flow_import.return_value = MagicMock()
mock_dispatcher_manager.dispatch_flow_export.return_value = MagicMock() mock_dispatcher_manager.dispatch_flow_export.return_value = MagicMock()
mock_dispatcher_manager.dispatch_flow_stream.return_value = MagicMock() mock_dispatcher_manager.dispatch_core_import.return_value = MagicMock()
mock_dispatcher_manager.dispatch_core_export.return_value = MagicMock()
manager = EndpointManager( manager = EndpointManager(
dispatcher_manager=mock_dispatcher_manager, dispatcher_manager=mock_dispatcher_manager,
@ -47,7 +48,8 @@ class TestEndpointManager:
mock_dispatcher_manager.dispatch_flow_service.return_value = MagicMock() mock_dispatcher_manager.dispatch_flow_service.return_value = MagicMock()
mock_dispatcher_manager.dispatch_flow_import.return_value = MagicMock() mock_dispatcher_manager.dispatch_flow_import.return_value = MagicMock()
mock_dispatcher_manager.dispatch_flow_export.return_value = MagicMock() mock_dispatcher_manager.dispatch_flow_export.return_value = MagicMock()
mock_dispatcher_manager.dispatch_flow_stream.return_value = MagicMock() mock_dispatcher_manager.dispatch_core_import.return_value = MagicMock()
mock_dispatcher_manager.dispatch_core_export.return_value = MagicMock()
manager = EndpointManager( manager = EndpointManager(
dispatcher_manager=mock_dispatcher_manager, dispatcher_manager=mock_dispatcher_manager,
@ -62,13 +64,14 @@ class TestEndpointManager:
mock_dispatcher_manager = MagicMock() mock_dispatcher_manager = MagicMock()
mock_auth = MagicMock() mock_auth = MagicMock()
# Mock dispatcher methods # Mock dispatcher methods that are actually called
mock_dispatcher_manager.dispatch_global_service.return_value = MagicMock() mock_dispatcher_manager.dispatch_global_service.return_value = MagicMock()
mock_dispatcher_manager.dispatch_socket.return_value = MagicMock() mock_dispatcher_manager.dispatch_socket.return_value = MagicMock()
mock_dispatcher_manager.dispatch_flow_service.return_value = MagicMock() mock_dispatcher_manager.dispatch_flow_service.return_value = MagicMock()
mock_dispatcher_manager.dispatch_flow_import.return_value = MagicMock() mock_dispatcher_manager.dispatch_flow_import.return_value = MagicMock()
mock_dispatcher_manager.dispatch_flow_export.return_value = MagicMock() mock_dispatcher_manager.dispatch_flow_export.return_value = MagicMock()
mock_dispatcher_manager.dispatch_flow_stream.return_value = MagicMock() mock_dispatcher_manager.dispatch_core_import.return_value = MagicMock()
mock_dispatcher_manager.dispatch_core_export.return_value = MagicMock()
EndpointManager( EndpointManager(
dispatcher_manager=mock_dispatcher_manager, dispatcher_manager=mock_dispatcher_manager,
@ -78,8 +81,9 @@ class TestEndpointManager:
# Verify all dispatcher methods were called during initialization # Verify all dispatcher methods were called during initialization
mock_dispatcher_manager.dispatch_global_service.assert_called_once() mock_dispatcher_manager.dispatch_global_service.assert_called_once()
mock_dispatcher_manager.dispatch_socket.assert_called() mock_dispatcher_manager.dispatch_socket.assert_called() # Called twice
mock_dispatcher_manager.dispatch_flow_service.assert_called_once() mock_dispatcher_manager.dispatch_flow_service.assert_called_once()
mock_dispatcher_manager.dispatch_flow_import.assert_called() mock_dispatcher_manager.dispatch_flow_import.assert_called_once()
mock_dispatcher_manager.dispatch_flow_export.assert_called() mock_dispatcher_manager.dispatch_flow_export.assert_called_once()
mock_dispatcher_manager.dispatch_flow_stream.assert_called() mock_dispatcher_manager.dispatch_core_import.assert_called_once()
mock_dispatcher_manager.dispatch_core_export.assert_called_once()

View file

@ -61,8 +61,8 @@ class TestSocketEndpoint:
async def async_iter(): async def async_iter():
yield mock_msg yield mock_msg
mock_ws = MagicMock() mock_ws = AsyncMock()
mock_ws.__aiter__ = lambda: async_iter() mock_ws.__aiter__ = lambda self: async_iter()
mock_running = MagicMock() mock_running = MagicMock()
# Call listener method # Call listener method
@ -70,6 +70,9 @@ class TestSocketEndpoint:
# Verify dispatcher.receive was called with the message # Verify dispatcher.receive was called with the message
mock_dispatcher.receive.assert_called_once_with(mock_msg) mock_dispatcher.receive.assert_called_once_with(mock_msg)
# Verify cleanup methods were called
mock_running.stop.assert_called_once()
mock_ws.close.assert_called_once()
@pytest.mark.asyncio @pytest.mark.asyncio
async def test_listener_method_with_binary_message(self): async def test_listener_method_with_binary_message(self):
@ -87,8 +90,8 @@ class TestSocketEndpoint:
async def async_iter(): async def async_iter():
yield mock_msg yield mock_msg
mock_ws = MagicMock() mock_ws = AsyncMock()
mock_ws.__aiter__ = lambda: async_iter() mock_ws.__aiter__ = lambda self: async_iter()
mock_running = MagicMock() mock_running = MagicMock()
# Call listener method # Call listener method
@ -96,6 +99,9 @@ class TestSocketEndpoint:
# Verify dispatcher.receive was called with the message # Verify dispatcher.receive was called with the message
mock_dispatcher.receive.assert_called_once_with(mock_msg) mock_dispatcher.receive.assert_called_once_with(mock_msg)
# Verify cleanup methods were called
mock_running.stop.assert_called_once()
mock_ws.close.assert_called_once()
@pytest.mark.asyncio @pytest.mark.asyncio
async def test_listener_method_with_close_message(self): async def test_listener_method_with_close_message(self):
@ -113,12 +119,15 @@ class TestSocketEndpoint:
async def async_iter(): async def async_iter():
yield mock_msg yield mock_msg
mock_ws = MagicMock() mock_ws = AsyncMock()
mock_ws.__aiter__ = lambda: async_iter() mock_ws.__aiter__ = lambda self: async_iter()
mock_running = MagicMock() mock_running = MagicMock()
# Call listener method # Call listener method
await endpoint.listener(mock_ws, mock_dispatcher, mock_running) await endpoint.listener(mock_ws, mock_dispatcher, mock_running)
# Verify dispatcher.receive was NOT called for close message # Verify dispatcher.receive was NOT called for close message
mock_dispatcher.receive.assert_not_called() mock_dispatcher.receive.assert_not_called()
# Verify cleanup methods were called after break
mock_running.stop.assert_called_once()
mock_ws.close.assert_called_once()