2025-07-14 14:57:44 +01:00
|
|
|
"""
|
|
|
|
|
Unit tests for trustgraph.base.async_processor
|
|
|
|
|
Starting small with a single test to verify basic functionality
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
import pytest
|
|
|
|
|
from unittest.mock import AsyncMock, MagicMock, patch
|
|
|
|
|
from unittest import IsolatedAsyncioTestCase
|
|
|
|
|
|
|
|
|
|
# Import the service under test
|
|
|
|
|
from trustgraph.base.async_processor import AsyncProcessor
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestAsyncProcessorSimple(IsolatedAsyncioTestCase):
|
|
|
|
|
"""Test AsyncProcessor base class functionality"""
|
|
|
|
|
|
2025-12-19 08:53:21 +00:00
|
|
|
@patch('trustgraph.base.async_processor.get_pubsub')
|
2025-07-14 14:57:44 +01:00
|
|
|
@patch('trustgraph.base.async_processor.Consumer')
|
|
|
|
|
@patch('trustgraph.base.async_processor.ProcessorMetrics')
|
|
|
|
|
@patch('trustgraph.base.async_processor.ConsumerMetrics')
|
2025-12-19 08:53:21 +00:00
|
|
|
async def test_async_processor_initialization_basic(self, mock_consumer_metrics, mock_processor_metrics,
|
|
|
|
|
mock_consumer, mock_get_pubsub):
|
2025-07-14 14:57:44 +01:00
|
|
|
"""Test basic AsyncProcessor initialization"""
|
|
|
|
|
# Arrange
|
2025-12-19 08:53:21 +00:00
|
|
|
mock_backend = MagicMock()
|
|
|
|
|
mock_get_pubsub.return_value = mock_backend
|
2025-07-14 14:57:44 +01:00
|
|
|
mock_consumer.return_value = MagicMock()
|
|
|
|
|
mock_processor_metrics.return_value = MagicMock()
|
|
|
|
|
mock_consumer_metrics.return_value = MagicMock()
|
2025-12-19 08:53:21 +00:00
|
|
|
|
2025-07-14 14:57:44 +01:00
|
|
|
config = {
|
|
|
|
|
'id': 'test-async-processor',
|
|
|
|
|
'taskgroup': AsyncMock()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# Act
|
|
|
|
|
processor = AsyncProcessor(**config)
|
|
|
|
|
|
|
|
|
|
# Assert
|
|
|
|
|
# Verify basic attributes are set
|
|
|
|
|
assert processor.id == 'test-async-processor'
|
|
|
|
|
assert processor.taskgroup == config['taskgroup']
|
|
|
|
|
assert processor.running == True
|
|
|
|
|
assert hasattr(processor, 'config_handlers')
|
|
|
|
|
assert processor.config_handlers == []
|
2025-12-19 08:53:21 +00:00
|
|
|
|
|
|
|
|
# Verify get_pubsub was called to create backend
|
|
|
|
|
mock_get_pubsub.assert_called_once_with(**config)
|
|
|
|
|
|
2025-07-14 14:57:44 +01:00
|
|
|
# Verify metrics were initialized
|
|
|
|
|
mock_processor_metrics.assert_called_once()
|
|
|
|
|
mock_consumer_metrics.assert_called_once()
|
2025-12-19 08:53:21 +00:00
|
|
|
|
2025-07-14 14:57:44 +01:00
|
|
|
# Verify Consumer was created for config subscription
|
|
|
|
|
mock_consumer.assert_called_once()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
|
pytest.main([__file__])
|