Skip to main content
Glama
test_server_utils.py2.44 kB
import pytest from discord_mcp.server import ( DiscordToolError, _parse_colour, _parse_optional_bool, _parse_permissions, ) from discord_mcp.utils import parse_permissions @pytest.mark.parametrize( "value,expected", [ (True, True), (False, False), ("true", True), ("NO", False), (1, True), (0, False), (None, None), ], ) def test_parse_optional_bool_valid(value, expected): assert _parse_optional_bool(value, "test") == expected @pytest.mark.parametrize("value", ["maybe", 2, object()]) def test_parse_optional_bool_invalid(value): with pytest.raises(DiscordToolError): _parse_optional_bool(value, "test") @pytest.mark.parametrize( "value,expected", [ ("#FF0000", 0xFF0000), ("0x00ff00", 0x00FF00), ("default", 0x000000), (16711935, 0xFF00FF), ], ) def test_parse_colour_valid(value, expected): colour = _parse_colour(value, name="color") assert colour is not None assert colour.value == expected def test_parse_colour_named(): colour = _parse_colour("blurple", name="color") assert colour is not None # discord.py's blurple constant is 0x5865F2 assert colour.value == 0x5865F2 @pytest.mark.parametrize("value", ["not-a-colour", -1]) def test_parse_colour_invalid(value): with pytest.raises(DiscordToolError): _parse_colour(value, name="color") def test_parse_permissions_from_list(): perms = _parse_permissions(["manage_roles", "kick_members"], None) assert perms is not None assert perms.manage_roles and perms.kick_members assert not perms.administrator def test_parse_permissions_accepts_common_aliases(): perms = _parse_permissions(["Admin", "Manage Channels", "manage-roles"], None) assert perms is not None assert perms.administrator assert perms.manage_channels assert perms.manage_roles def test_parse_permissions_from_value(): perms = _parse_permissions(None, "1049600") assert perms is not None assert isinstance(perms.value, int) def test_parse_permissions_unknown_name(): with pytest.raises(DiscordToolError): _parse_permissions(["not_a_permission"], None) def test_parse_permissions_none(): assert _parse_permissions(None, None) is None def test_utils_parse_permissions_alias(): perms = parse_permissions(["Admin"]) assert perms.administrator

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/wowjinxy/mcp-discord'

If you have feedback or need assistance with the MCP directory API, please join our Discord server