"""Test sentry helper methods.""" from typing import Any, Dict, List, Optional import pytest from sentry_sdk.types import Event from pdp import config from pdp.utils.sentry import sentry_ignore_loggers @pytest.mark.parametrize( "description, ignore_logger_set, test_event, expected_return", [ ( "Should return None when logger is in IGNORED_SENTRY_LOGGERS", {"noisymodule"}, {"logger": "noisymodule.foo.bar"}, None, ), ( "Should return the event when logger is not IGNORED_SENTRY_LOGGERS", {"noisymodule"}, {"logger": "baz.foo.bar"}, {"logger": "baz.foo.bar"}, ), ( "Should return the event when logger field is missing", {"noisymodule"}, {"test": "attribute1"}, {"test": "attribute1"}, ), ( "Should return the event when IGNORED_SENTRY_LOGGERS is empty.", {}, {"logger": "noisymodule.foo.bar"}, {"logger": "noisymodule.foo.bar"}, ), ], ) def test_sentry_ignore_loggers( description: str, ignore_logger_set: List[str], test_event: Event, expected_return: Optional[Dict[str, Any]], monkeypatch: Any, ) -> None: """Test the sentry_ignore_logger method.""" monkeypatch.setattr(config, "IGNORED_SENTRY_LOGGERS", ignore_logger_set) assert expected_return == sentry_ignore_loggers(test_event, dict()), description