Update GITHUB_BRANCH in values.yaml to feature/SIENTIAPDE-1325 for specific external operation metrics. Refactor shutdown methods in Activities class to ensure proper closure of MongoDB, Redis, and Gates connections. Adjust tests to reflect these changes and enhance repository pattern implementation for MongoDB and Redis activities.
138 lines
4.2 KiB
Python
138 lines
4.2 KiB
Python
from unittest.mock import ANY, MagicMock, patch
|
|
|
|
from sientia_do.temporal.activities.postgres import Postgres
|
|
|
|
from scouter.activities.activities import Activities
|
|
from scouter.activities.gates import Gates
|
|
from scouter.activities.mongodb import MongoDB
|
|
from scouter.activities.redis import Redis
|
|
|
|
|
|
@patch('scouter.activities.activities.MongoDB.__init__')
|
|
@patch('scouter.activities.activities.Postgres.__init__')
|
|
@patch('scouter.activities.activities.Redis.__init__')
|
|
@patch('scouter.activities.activities.Gates.__init__')
|
|
def test___init__(mock_gates_init, mock_redis_init, mock_postgres_init, mock_mongodb_init):
|
|
postgres_config = {
|
|
'host': 'localhost',
|
|
'port': 5432,
|
|
'user': 'postgres',
|
|
'password': 'postgres',
|
|
'dbname': 'postgres',
|
|
'min_connections': 1,
|
|
'max_connections': 10,
|
|
}
|
|
|
|
redis_config = {'host': 'localhost', 'port': 6379, 'username': 'redis', 'password': 'redis'}
|
|
|
|
mongodb_config = {
|
|
'connection_string': 'mongodb://localhost:27017',
|
|
'database_name': 'test_database',
|
|
}
|
|
|
|
logger = MagicMock()
|
|
notification_handler = MagicMock()
|
|
|
|
activities = Activities(
|
|
postgres_config=postgres_config,
|
|
redis_config=redis_config,
|
|
mongodb_config=mongodb_config,
|
|
logger=logger,
|
|
notification_handler=notification_handler,
|
|
)
|
|
|
|
assert isinstance(activities, Activities)
|
|
assert isinstance(activities, Postgres)
|
|
assert isinstance(activities, Redis)
|
|
assert isinstance(activities, MongoDB)
|
|
assert isinstance(activities, Gates)
|
|
|
|
mock_postgres_init.assert_called_once_with(
|
|
ANY,
|
|
host=postgres_config['host'],
|
|
port=postgres_config['port'],
|
|
user=postgres_config['user'],
|
|
password=postgres_config['password'],
|
|
dbname=postgres_config['dbname'],
|
|
min_connections=postgres_config['min_connections'],
|
|
max_connections=postgres_config['max_connections'],
|
|
logger=logger,
|
|
notification_handler=notification_handler,
|
|
)
|
|
|
|
mock_redis_init.assert_called_once_with(
|
|
ANY,
|
|
host=redis_config['host'],
|
|
port=redis_config['port'],
|
|
username=redis_config['username'],
|
|
password=redis_config['password'],
|
|
logger=logger,
|
|
notification_handler=notification_handler,
|
|
)
|
|
|
|
mock_mongodb_init.assert_called_once_with(
|
|
ANY,
|
|
connection_string=mongodb_config['connection_string'],
|
|
database_name=mongodb_config['database_name'],
|
|
logger=logger,
|
|
notification_handler=notification_handler,
|
|
)
|
|
|
|
mock_gates_init.assert_called_once_with(
|
|
ANY, logger=logger, notification_handler=notification_handler
|
|
)
|
|
|
|
|
|
@patch('scouter.activities.activities.Postgres.__init__')
|
|
@patch('scouter.activities.activities.Redis.__init__')
|
|
@patch('scouter.activities.activities.Gates.__init__')
|
|
@patch('scouter.activities.activities.MongoDB.__init__')
|
|
@patch('scouter.activities.activities.Postgres.close')
|
|
@patch('scouter.activities.activities.MongoDB.close')
|
|
@patch('scouter.activities.activities.Redis.close')
|
|
@patch('scouter.activities.activities.Gates.close')
|
|
def test_shutdown(
|
|
mock_gates_close,
|
|
mock_redis_close,
|
|
mock_mongodb_close,
|
|
mock_postgres_close,
|
|
_mock_mongodb_init,
|
|
_mock_gates_init,
|
|
_mock_redis_init,
|
|
_mock_postgres_init,
|
|
):
|
|
postgres_config = {
|
|
'host': 'localhost',
|
|
'port': 5432,
|
|
'user': 'postgres',
|
|
'password': 'postgres',
|
|
'dbname': 'postgres',
|
|
'min_connections': 1,
|
|
'max_connections': 10,
|
|
}
|
|
|
|
redis_config = {'host': 'localhost', 'port': 6379, 'username': 'redis', 'password': 'redis'}
|
|
|
|
mongodb_config = {
|
|
'connection_string': 'mongodb://localhost:27017',
|
|
'database_name': 'test_database',
|
|
}
|
|
|
|
logger = MagicMock()
|
|
notification_handler = MagicMock()
|
|
|
|
activities = Activities(
|
|
postgres_config=postgres_config,
|
|
redis_config=redis_config,
|
|
mongodb_config=mongodb_config,
|
|
logger=logger,
|
|
notification_handler=notification_handler,
|
|
)
|
|
|
|
activities.shutdown()
|
|
|
|
mock_postgres_close.assert_called()
|
|
mock_mongodb_close.assert_called()
|
|
mock_redis_close.assert_called()
|
|
mock_gates_close.assert_called()
|