"""Unit tests for Datadog connector.""" from unittest.mock import patch from src.connectors import datadog @patch('src.connectors.datadog.api') @patch('src.connectors.datadog.initialize') def test_datadog_connection(mock_datadog_initialize, mock_datadog_api, monkeypatch): """Test datadog_connection context manager.""" monkeypatch.setattr('config.DD_API_KEY', 'abc') monkeypatch.setattr('config.DD_APP_KEY', 'def') with datadog.datadog_connection() as conn: conn.Metric.send(metric='foo', points=1, tags=['foo:bar']) mock_datadog_initialize.assert_called_with(api_key='abc', app_key='def') mock_datadog_api.Metric.send.assert_called_with( metric='foo', points=1, tags=['foo:bar'] ) @patch('src.connectors.datadog.api') @patch('src.connectors.datadog.initialize') def test_publish_metric(mock_datadog_initialize, mock_datadog_api, monkeypatch): """Test publish_metric function.""" monkeypatch.setattr('config.ENVIRONMENT', 'prod') datadog.publish_metric(metric='foo', value=1) mock_datadog_api.Metric.send.assert_called_with( metric='foo', points=1, tags=[ 'environment:prod', 'service_name:github-public-repo-audit', ] ) @patch('src.connectors.datadog.api') @patch('src.connectors.datadog.initialize') def test_skip_publish_metric(mock_datadog_initialize, mock_datadog_api, monkeypatch): """Test skip publish_metric function.""" monkeypatch.setattr('config.ENVIRONMENT', 'test') datadog.publish_metric(metric='foo', value=1) mock_datadog_api.Metric.send.assert_not_called()