fix channel members tool, add debug commands

This commit is contained in:
2026-05-25 12:15:58 -04:00
parent 7a1ba05068
commit 243475db8f
4 changed files with 286 additions and 13 deletions
+27 -8
View File
@@ -24,7 +24,7 @@ def test_get_channel_members_impl_returns_formatted_list() -> None:
mock_member2.status = MagicMock(value="idle")
mock_channel = MagicMock()
mock_channel.members = [mock_member1, mock_member2]
mock_channel.guild.members = [mock_member1, mock_member2]
result = get_channel_members_impl(mock_channel)
@@ -38,7 +38,7 @@ def test_get_channel_members_impl_returns_formatted_list() -> None:
def test_get_channel_members_impl_empty() -> None:
"""Test get_channel_members_impl with no members."""
mock_channel = MagicMock()
mock_channel.members = []
mock_channel.guild.members = []
result = get_channel_members_impl(mock_channel)
@@ -55,7 +55,7 @@ def test_get_channel_members_impl_with_global_name() -> None:
mock_member.status = MagicMock(value="dnd")
mock_channel = MagicMock()
mock_channel.members = [mock_member]
mock_channel.guild.members = [mock_member]
result = get_channel_members_impl(mock_channel)
@@ -72,7 +72,7 @@ def test_get_channel_members_impl_no_status() -> None:
mock_member.status = None
mock_channel = MagicMock()
mock_channel.members = [mock_member]
mock_channel.guild.members = [mock_member]
result = get_channel_members_impl(mock_channel)
@@ -83,8 +83,7 @@ def test_get_channel_members_impl_no_status() -> None:
def test_get_channel_members_impl_exception() -> None:
"""Test get_channel_members_impl handles exceptions gracefully."""
mock_channel = MagicMock()
mock_channel.members = None
type(mock_channel).members = property(
type(mock_channel.guild).members = property(
lambda self: (_ for _ in ()).throw(Exception("test"))
)
@@ -119,7 +118,7 @@ def test_get_channel_members_impl_sorted_by_display_name() -> None:
mock_member_a.status = MagicMock(value="online")
mock_channel = MagicMock()
mock_channel.members = [mock_member_z, mock_member_a]
mock_channel.guild.members = [mock_member_z, mock_member_a]
result = get_channel_members_impl(mock_channel)
@@ -138,7 +137,7 @@ def test_get_channel_members_impl_no_nick_when_same_as_display() -> None:
mock_member.status = MagicMock(value="online")
mock_channel = MagicMock()
mock_channel.members = [mock_member]
mock_channel.guild.members = [mock_member]
result = get_channel_members_impl(mock_channel)
@@ -179,3 +178,23 @@ def test_format_member_with_all_fields() -> None:
assert "(nickname: Al)" in result
assert "(global name: Alice Global)" in result
assert "[online]" in result
def test_get_channel_members_impl_no_guild() -> None:
"""Test get_channel_members_impl when channel has no guild (e.g. DM)."""
mock_channel = MagicMock()
mock_channel.guild = None
result = get_channel_members_impl(mock_channel)
assert "No members found in this channel." in result
def test_get_channel_members_impl_guild_members_none() -> None:
"""Test get_channel_members_impl when guild.members is None."""
mock_channel = MagicMock()
mock_channel.guild.members = None
result = get_channel_members_impl(mock_channel)
assert "No members found in this channel." in result