SIENTIAPDE-988
Add temporary functiontal tests, that must be removed soon. Refactor tests: Remove outdated resource manager tests and add functional tests with Docker and Kafka integration - Deleted existing unit tests for ResourceManager. - Introduced new functional tests for single node operations with Redis and Kafka. - Added Docker Compose setup for test environment. - Implemented fixtures for Redis and Kafka consumers. - Created comprehensive tests for data publishing and slot management. - Added unit tests for DataManager and IngestorManager with mocked dependencies. - Included tests for OpcManager covering connection, subscription, and data change notifications.
This commit is contained in:
82
tests/unit/managers/test_resource_manager.py
Normal file
82
tests/unit/managers/test_resource_manager.py
Normal file
@@ -0,0 +1,82 @@
|
||||
from unittest.mock import MagicMock, patch
|
||||
from pytest import fixture
|
||||
from ingestor.managers.resource_manager import ResourceManager
|
||||
|
||||
|
||||
@fixture
|
||||
@patch('ingestor.managers.resource_manager.Redis')
|
||||
def resource_manager(redis):
|
||||
|
||||
return ResourceManager(
|
||||
'localhost', 6379, 10, 10, 'pod_id'
|
||||
)
|
||||
|
||||
|
||||
def test_get_success(resource_manager):
|
||||
resource_manager.redis.get.return_value = '{"key": "value"}'
|
||||
result = resource_manager.get('key')
|
||||
assert result == {"key": "value"}
|
||||
resource_manager.redis.get.assert_called_once_with('key')
|
||||
|
||||
|
||||
def test_get_failure(resource_manager):
|
||||
resource_manager.redis.get.return_value = None
|
||||
result = resource_manager.get('key')
|
||||
assert result is None
|
||||
resource_manager.redis.get.assert_called_once_with('key')
|
||||
|
||||
|
||||
def test_get_tag_slot(resource_manager):
|
||||
resource_manager.get = MagicMock(return_value={"tag": "slot"})
|
||||
result = resource_manager.get_tag_slot('id')
|
||||
assert result == {"tag": "slot"}
|
||||
resource_manager.get.assert_called_once_with('slot:opc_tags:id')
|
||||
|
||||
|
||||
def test_ingestor_heartbeat(resource_manager):
|
||||
resource_manager.redis.set.return_value = True
|
||||
resource_manager.ingestor_heartbeat()
|
||||
resource_manager.redis.set.assert_called_once_with(
|
||||
'heartbeat:ingestor:pod_id', 1, ex=10
|
||||
)
|
||||
|
||||
|
||||
def test_lease_tag(resource_manager):
|
||||
resource_manager.redis.set.return_value = True
|
||||
output = resource_manager.lease_tag('tag_id')
|
||||
assert output is True
|
||||
resource_manager.redis.set.assert_called_once_with(
|
||||
'lease:opc_tags:tag_id', 'pod_id', nx=True, ex=10
|
||||
)
|
||||
|
||||
|
||||
def test_renew_tag_lease_success(resource_manager):
|
||||
resource_manager.redis.get.return_value = 'pod_id'
|
||||
resource_manager.redis.expire.return_value = True
|
||||
result = resource_manager.renew_tag_lease('tag_id')
|
||||
assert result is True
|
||||
resource_manager.redis.get.assert_called_once_with(
|
||||
'lease:opc_tags:tag_id'
|
||||
)
|
||||
resource_manager.redis.expire.assert_called_once_with(
|
||||
'lease:opc_tags:tag_id', 10
|
||||
)
|
||||
|
||||
|
||||
def test_renew_tag_lease_failure(resource_manager):
|
||||
resource_manager.redis.get.return_value = 'other_pod_id'
|
||||
resource_manager.redis.expire.return_value = False
|
||||
result = resource_manager.renew_tag_lease('tag_id')
|
||||
assert result is False
|
||||
resource_manager.redis.get.assert_called_once_with(
|
||||
'lease:opc_tags:tag_id'
|
||||
)
|
||||
resource_manager.redis.expire.assert_not_called()
|
||||
|
||||
|
||||
def test_drop_tag_lease(resource_manager):
|
||||
resource_manager.redis.delete.return_value = True
|
||||
resource_manager.drop_tag_lease('tag_id')
|
||||
resource_manager.redis.delete.assert_called_once_with(
|
||||
'lease:opc_tags:tag_id'
|
||||
)
|
||||
Reference in New Issue
Block a user