"""Unit tests for the tasks of chartmetric_monitor.""" from unittest.mock import MagicMock, patch from snowflake.connector.errors import ProgrammingError from swf_monitoring.flows.chartmetric_monitor import tasks @patch('swf_monitoring.flows.chartmetric_monitor.tasks.SnowflakeSQLExecutor') @patch( 'swf_monitoring.flows.chartmetric_monitor.tasks.datadog.api.Event.create') def test_check_tables(datadog_mock, executor_mock, monkeypatch): """Test test_check_tables.""" activity_mock = MagicMock() tasks.check_tables(activity_mock) assert executor_mock.call_count == 52 assert datadog_mock.call_count == 0 @patch('swf_monitoring.flows.chartmetric_monitor.tasks.SnowflakeSQLExecutor') @patch( 'swf_monitoring.flows.chartmetric_monitor.tasks.datadog.api.Event.create') def test_check_tables_table_not_found( datadog_mock, executor_mock, monkeypatch): """Test test_check_tables if all tables not found.""" activity_mock = MagicMock() executor_mock.return_value.__enter__.\ return_value.fetchone_query.side_effect = ProgrammingError datadog_mock.return_value = {'status': 'ok'} tasks.check_tables(activity_mock) assert executor_mock.call_count == 104 assert datadog_mock.call_count == 52