Fix EmbedMediaProxy boolean check

This commit is contained in:
Alex Nørgaard 2025-06-20 19:30:10 +01:00 committed by GitHub
parent e84edf473c
commit e177b4a705
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 17 additions and 0 deletions

View File

@ -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)

View File

@ -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