From e177b4a70502cf248ae0d682ed011875999ffd1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20N=C3=B8rgaard?= Date: Fri, 20 Jun 2025 19:30:10 +0100 Subject: [PATCH] Fix EmbedMediaProxy boolean check --- discord/embeds.py | 6 ++++++ tests/test_embed.py | 11 +++++++++++ 2 files changed, 17 insertions(+) diff --git a/discord/embeds.py b/discord/embeds.py index 7f84e410d..6bd057ac8 100644 --- a/discord/embeds.py +++ b/discord/embeds.py @@ -61,6 +61,12 @@ class EmbedMediaProxy(EmbedProxy): super().__init__(layer) self._flags = self.__dict__.pop('flags', 0) + def __bool__(self) -> bool: + # This is a nasty check to see if we only have the `_flags` attribute which is created regardless in init. + # Had we had any of the other items, like image/video data this would be >1 and therefor + # would not be "empty". + return len(self.__dict__) > 1 + @property def flags(self) -> AttachmentFlags: return AttachmentFlags._from_value(self._flags or 0) diff --git a/tests/test_embed.py b/tests/test_embed.py index 3efedd6a5..004f73e3b 100644 --- a/tests/test_embed.py +++ b/tests/test_embed.py @@ -267,3 +267,14 @@ def test_embed_colour_setter_failure(value): embed = discord.Embed() with pytest.raises(TypeError): embed.colour = value + +@pytest.mark.parametrize( + ('title', 'return_val'), + [ + ('test', True), + (None, False) + ] +) +def test_embed_truthiness(title: str, return_val: bool) -> None: + embed = discord.Embed(title=title) + assert bool(embed) is return_val