diff --git a/scouter/activities/activities.py b/scouter/activities/activities.py index 19b1ae9..2f3f8f9 100644 --- a/scouter/activities/activities.py +++ b/scouter/activities/activities.py @@ -83,7 +83,12 @@ class Activities(Postgres, Redis, Gates, MongoDB): ) # Initialize Gates - Gates.__init__(self, logger=logger, notification_handler=notification_handler, metrics_controller=metrics_controller) + Gates.__init__( + self, + logger=logger, + notification_handler=notification_handler, + metrics_controller=metrics_controller, + ) # Initialize MongoDB MongoDB.__init__( diff --git a/scouter/activities/gates.py b/scouter/activities/gates.py index 6c7ea32..f539b4f 100644 --- a/scouter/activities/gates.py +++ b/scouter/activities/gates.py @@ -37,7 +37,12 @@ class Gates(SientiaMonitoring): ensure data integrity and enable flexible data processing workflows. """ - def __init__(self, logger: Logger, notification_handler: NotificationHandler, metrics_controller: MetricsController): + def __init__( + self, + logger: Logger, + notification_handler: NotificationHandler, + metrics_controller: MetricsController, + ): """ Initialize the Gates class with logging and notification services. diff --git a/scouter/activities/mongodb.py b/scouter/activities/mongodb.py index 4c73af9..4e61d86 100644 --- a/scouter/activities/mongodb.py +++ b/scouter/activities/mongodb.py @@ -60,7 +60,12 @@ class MongoDB(SientiaMonitoring): metrics_controller=metrics_controller, ) - SientiaMonitoring.__init__(self, logger=logger, notification_handler=notification_handler, metrics_controller=metrics_controller) + SientiaMonitoring.__init__( + self, + logger=logger, + notification_handler=notification_handler, + metrics_controller=metrics_controller, + ) def close(self): """ diff --git a/scouter/worker/worker.py b/scouter/worker/worker.py index a89875b..75e6715 100644 --- a/scouter/worker/worker.py +++ b/scouter/worker/worker.py @@ -134,10 +134,8 @@ async def main(): try: await asyncio.gather(*handlers) - except BaseException as e: # NOSONAR - logger.custom_error( - 'An unhandled exception occurred: %s', metadata=metadata - ) + except BaseException: # NOSONAR + logger.custom_error('An unhandled exception occurred: %s', metadata=metadata) finally: if notification_handler: notification_handler.shutdown() diff --git a/tests/activities/test_activities.py b/tests/activities/test_activities.py index 7d07ecb..bc31dee 100644 --- a/tests/activities/test_activities.py +++ b/tests/activities/test_activities.py @@ -13,7 +13,9 @@ from scouter.activities.redis import Redis @patch('scouter.activities.activities.Redis.__init__') @patch('scouter.activities.activities.Gates.__init__') @patch('scouter.activities.activities.MetricsController') -def test___init__(mock_metrics_controller, mock_gates_init, mock_redis_init, mock_postgres_init, mock_mongodb_init): +def test___init__( + mock_metrics_controller, mock_gates_init, mock_redis_init, mock_postgres_init, mock_mongodb_init +): postgres_config = { 'host': 'localhost', 'port': 5432, @@ -39,7 +41,7 @@ def test___init__(mock_metrics_controller, mock_gates_init, mock_redis_init, moc redis_config=redis_config, mongodb_config=mongodb_config, logger=logger, - notification_handler=notification_handler + notification_handler=notification_handler, ) assert isinstance(activities, Activities) @@ -83,7 +85,10 @@ def test___init__(mock_metrics_controller, mock_gates_init, mock_redis_init, moc ) mock_gates_init.assert_called_once_with( - ANY, logger=logger, notification_handler=notification_handler, metrics_controller=mock_metrics_controller.return_value + ANY, + logger=logger, + notification_handler=notification_handler, + metrics_controller=mock_metrics_controller.return_value, ) diff --git a/tests/activities/test_gates.py b/tests/activities/test_gates.py index 7e8f29e..814c14e 100644 --- a/tests/activities/test_gates.py +++ b/tests/activities/test_gates.py @@ -15,7 +15,11 @@ def gates_fixture(): logger = Mock() notification_handler = MagicMock() metrics_controller = MagicMock() - gates = Gates(logger=logger, notification_handler=notification_handler, metrics_controller=metrics_controller) + gates = Gates( + logger=logger, + notification_handler=notification_handler, + metrics_controller=metrics_controller, + ) gates.send_notification = MagicMock() gates.logger = logger gates.notification_handler = notification_handler diff --git a/tests/activities/test_mongo.py b/tests/activities/test_mongo.py index 6b812c2..bb8e9b2 100644 --- a/tests/activities/test_mongo.py +++ b/tests/activities/test_mongo.py @@ -68,15 +68,17 @@ def test_del(mongodb_activity): async def test_load_latest_data_none_last_data_timestamp(mongodb_activity): """Test load_latest_data""" - mongodb_activity.mongodb_repository.find = AsyncMock(return_value = [ - { - 'name': 'test1', - 'value': 1, - 'inserted_at': datetime.strptime( - '2023-01-01 12:00:00.000000+0000', DATETIME_FORMAT_MS_WITH_TZ - ), - } - ]) + mongodb_activity.mongodb_repository.find = AsyncMock( + return_value=[ + { + 'name': 'test1', + 'value': 1, + 'inserted_at': datetime.strptime( + '2023-01-01 12:00:00.000000+0000', DATETIME_FORMAT_MS_WITH_TZ + ), + } + ] + ) result = await mongodb_activity.load_latest_data( { @@ -105,15 +107,17 @@ async def test_load_latest_data_none_last_data_timestamp(mongodb_activity): async def test_load_latest_data_not_none_last_data_timestamp(mongodb_activity): """Test load_latest_data""" - mongodb_activity.mongodb_repository.find = AsyncMock(return_value = [ - { - 'name': 'test1', - 'value': 1, - 'inserted_at': datetime.strptime( - '2023-01-01 12:00:00.000000+0000', DATETIME_FORMAT_MS_WITH_TZ - ), - } - ]) + mongodb_activity.mongodb_repository.find = AsyncMock( + return_value=[ + { + 'name': 'test1', + 'value': 1, + 'inserted_at': datetime.strptime( + '2023-01-01 12:00:00.000000+0000', DATETIME_FORMAT_MS_WITH_TZ + ), + } + ] + ) result = await mongodb_activity.load_latest_data( { diff --git a/tests/activities/test_redis.py b/tests/activities/test_redis.py index 3ec93c8..80b08fc 100644 --- a/tests/activities/test_redis.py +++ b/tests/activities/test_redis.py @@ -80,7 +80,7 @@ async def test_get_last_data_timestamp_none(redis_activity): 'schedule_name': 'test_schedule', } - redis_activity.redis_repository.get = AsyncMock(return_value = None) + redis_activity.redis_repository.get = AsyncMock(return_value=None) result = await redis_activity.get_last_data_timestamp(test_data) @@ -96,7 +96,7 @@ async def test_get_last_data_timestamp_not_none(redis_activity): """Test get_last_data_timestamp""" test_data = {**metadata, 'workflow_name': 'test_pipeline', 'schedule_name': 'test_schedule'} - redis_activity.redis_repository.get = AsyncMock(return_value = '2023-01-01 12:00:00') + redis_activity.redis_repository.get = AsyncMock(return_value='2023-01-01 12:00:00') result = await redis_activity.get_last_data_timestamp(test_data) @@ -259,9 +259,12 @@ async def test_group_and_hold_data_new_key(redis_activity): # Verify set was called with correct arguments redis_activity.redis_repository.set.assert_called_once_with( - 'held_data_test_pipeline_test_schedule', {'sensor1': 25.5, 'sensor2': 30.0, 'timestamp': '2023-01-01 12:00:00'}, ttl=3600 + 'held_data_test_pipeline_test_schedule', + {'sensor1': 25.5, 'sensor2': 30.0, 'timestamp': '2023-01-01 12:00:00'}, + ttl=3600, ) + @pytest.mark.asyncio async def test_group_and_hold_data_update_existing_fill_missing(redis_activity): """Test updating existing data with group_and_hold_data""" @@ -314,11 +317,18 @@ async def test_group_and_hold_data_update_existing_fill_missing(redis_activity): # Verify set was called with correct arguments redis_activity.redis_repository.set.assert_called_once_with( - 'held_data_test_workflow_test_schedule', {'sensor1': 25.5, 'sensor2': 28.0, 'sensor3': 42.0, 'sensor4': None, 'timestamp': '2023-01-01 12:00:00'}, ttl=3600 + 'held_data_test_workflow_test_schedule', + { + 'sensor1': 25.5, + 'sensor2': 28.0, + 'sensor3': 42.0, + 'sensor4': None, + 'timestamp': '2023-01-01 12:00:00', + }, + ttl=3600, ) - @pytest.mark.asyncio async def test_group_and_hold_data_with_none_values(redis_activity): """Test handling of None values in group_and_hold_data""" diff --git a/tests/utils/test_connectors_config.py b/tests/utils/test_connectors_config.py index 0eb7012..d57b335 100644 --- a/tests/utils/test_connectors_config.py +++ b/tests/utils/test_connectors_config.py @@ -126,7 +126,7 @@ def test_build_mongodb_config_defaults(): os.environ['MONGODB_DATABASE_NAME'] = 'sientia' os.environ['MONGODB_USERNAME'] = 'sientia' os.environ['MONGODB_PASSWORD'] = 'sientia' - + config = build_mongodb_config() assert config == {