diff --git a/src/_pytest/recwarn.py b/src/_pytest/recwarn.py index 5d2a98b2c..62df274bd 100644 --- a/src/_pytest/recwarn.py +++ b/src/_pytest/recwarn.py @@ -332,8 +332,11 @@ class WarningsChecker(WarningsRecorder): # Check warnings has valid argument type (#10865). wrn: warnings.WarningMessage for wrn in self: - if isinstance(wrn.message, Warning): - if not isinstance(msg := wrn.message.args[0], str): - raise TypeError( - f"Warning message must be str, got {msg!r} (type {type(msg).__name__})" - ) + self._validate_message(wrn) + + @staticmethod + def _validate_message(wrn: Any) -> None: + if not isinstance(msg := wrn.message.args[0], str): + raise TypeError( + f"Warning message must be str, got {msg!r} (type {type(msg).__name__})" + )