diff --git a/airflow/utils/log/secrets_masker.py b/airflow/utils/log/secrets_masker.py index 3177c58d14525..2fd0d0aaf97ad 100644 --- a/airflow/utils/log/secrets_masker.py +++ b/airflow/utils/log/secrets_masker.py @@ -16,7 +16,6 @@ # under the License. """Mask sensitive information from logs""" import collections -import io import logging import re from typing import TYPE_CHECKING, Iterable, Optional, Set, TypeVar, Union @@ -178,7 +177,7 @@ def _redact_all(self, item: "RedactableItem") -> "RedactableItem": elif isinstance(item, (tuple, set)): # Turn set in to tuple! return tuple(self._redact_all(subval) for subval in item) - elif isinstance(item, Iterable): + elif isinstance(item, list): return list(self._redact_all(subval) for subval in item) else: return item @@ -209,12 +208,11 @@ def redact(self, item: "RedactableItem", name: str = None) -> "RedactableItem": elif isinstance(item, (tuple, set)): # Turn set in to tuple! return tuple(self.redact(subval) for subval in item) - elif isinstance(item, io.IOBase): - return item - elif isinstance(item, Iterable): + elif isinstance(item, list): return list(self.redact(subval) for subval in item) else: return item + # I think this should never happen, but it does not hurt to leave it just in case except Exception as e: # pylint: disable=broad-except log.warning( "Unable to redact %r, please report this via . " diff --git a/tests/utils/log/test_secrets_masker.py b/tests/utils/log/test_secrets_masker.py index 24e86c1b297f6..5d3b40404d9fd 100644 --- a/tests/utils/log/test_secrets_masker.py +++ b/tests/utils/log/test_secrets_masker.py @@ -72,22 +72,6 @@ def test_args(self, logger, caplog): assert caplog.text == "INFO Cannot connect to user:***\n" - def test_non_redactable(self, logger, caplog): - class NonReactable: - def __iter__(self): - raise RuntimeError("force fail") - - def __repr__(self): - return "" - - logger.info("Logging %s", NonReactable()) - - assert caplog.messages == [ - "Unable to redact , please report this via " - + ". Error was: RuntimeError: force fail", - "Logging ", - ] - def test_extra(self, logger, caplog): logger.handlers[0].formatter = ShortExcFormatter("%(levelname)s %(message)s %(conn)s") logger.info("Cannot connect", extra={'conn': "user:password"})