From 5ee0061936f05ee87c98b81cf274b91e73df2cee Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 25 May 2026 17:13:15 +0200 Subject: [PATCH] Add Discord embed unit tests for safe send behavior --- test/test_discord_embeds.py | 46 +++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 test/test_discord_embeds.py diff --git a/test/test_discord_embeds.py b/test/test_discord_embeds.py new file mode 100644 index 0000000..d504ccb --- /dev/null +++ b/test/test_discord_embeds.py @@ -0,0 +1,46 @@ +import pytest + +pytest.importorskip("discord") + +import discord + +from config import Config +from messages.discord_embeds import DiscordEmbeds + + +class _DummyWebhook: + def __init__(self): + self.calls = [] + + def send(self, **kwargs): + self.calls.append(kwargs) + + +def _build_embeds(monkeypatch): + # Prevent tests from constructing a real webhook from local config. + monkeypatch.setattr(DiscordEmbeds, "_get_webhook", lambda self, hook_url: None) + return DiscordEmbeds() + + +def test_send_embed_ignores_none_embed(monkeypatch): + embeds = _build_embeds(monkeypatch) + webhook = _DummyWebhook() + + embeds._send_embed(None, webhook) + + assert len(webhook.calls) == 0 + + +def test_send_embed_sends_valid_embed(monkeypatch): + embeds = _build_embeds(monkeypatch) + webhook = _DummyWebhook() + embed = discord.Embed(title="Update", description="Test", color=discord.Color.blue()) + + embeds._send_embed(embed, webhook) + + assert len(webhook.calls) == 1 + call = webhook.calls[0] + assert call["embed"] is embed + assert call["username"] == Config().general["name"] + assert embed.footer.text.startswith("Botty v.") + assert embed.timestamp is not None