diff --git a/gateway/platforms/discord.py b/gateway/platforms/discord.py index 0d23407bf..332d83f52 100644 --- a/gateway/platforms/discord.py +++ b/gateway/platforms/discord.py @@ -1,3 +1,5 @@ +from __future__ import annotations + """ Discord platform adapter. diff --git a/tests/gateway/test_discord_imports.py b/tests/gateway/test_discord_imports.py new file mode 100644 index 000000000..bbda79c9e --- /dev/null +++ b/tests/gateway/test_discord_imports.py @@ -0,0 +1,23 @@ +"""Import-safety tests for the Discord gateway adapter.""" + +import builtins +import importlib +import sys + + +class TestDiscordImportSafety: + def test_module_imports_even_when_discord_dependency_is_missing(self, monkeypatch): + original_import = builtins.__import__ + + def fake_import(name, globals=None, locals=None, fromlist=(), level=0): + if name == "discord" or name.startswith("discord."): + raise ImportError("discord unavailable for test") + return original_import(name, globals, locals, fromlist, level) + + monkeypatch.delitem(sys.modules, "gateway.platforms.discord", raising=False) + monkeypatch.setattr(builtins, "__import__", fake_import) + + module = importlib.import_module("gateway.platforms.discord") + + assert module.DISCORD_AVAILABLE is False + assert module.discord is None