feat: validate bot voice channel permissions
This commit is contained in:
6 files changed
+60
-2
No files matched your search
@@ -86,6 +86,37 @@ class ApiSurfaceTest(unittest.TestCase):
|
||||
self.assertEqual(result, {"status": "restarting"})
|
||||
mock_restart.assert_called_once()
|
||||
|
||||
def test_voice_channels_payload_filters_unconnectable_channels(self):
|
||||
from unittest.mock import MagicMock
|
||||
from zyrarbot.ui.api.status_service import StatusService
|
||||
|
||||
mock_guild = MagicMock()
|
||||
mock_guild.id = 123
|
||||
mock_guild.name = "Test Guild"
|
||||
|
||||
ch1 = MagicMock()
|
||||
ch1.id = 1
|
||||
ch1.name = "Allowed Voice"
|
||||
ch1.permissions_for.return_value.connect = True
|
||||
|
||||
ch2 = MagicMock()
|
||||
ch2.id = 2
|
||||
ch2.name = "Forbidden Voice"
|
||||
ch2.permissions_for.return_value.connect = False
|
||||
|
||||
mock_guild.voice_channels = [ch1, ch2]
|
||||
mock_guild.me = MagicMock()
|
||||
|
||||
mock_guilds_resolver = MagicMock()
|
||||
mock_guilds_resolver.guilds.return_value = [mock_guild]
|
||||
|
||||
service = StatusService(MagicMock(), mock_guilds_resolver)
|
||||
channels = service._voice_channels_payload(mock_guild)
|
||||
|
||||
self.assertEqual(len(channels), 1)
|
||||
self.assertEqual(channels[0]["channel_id"], "1")
|
||||
self.assertEqual(channels[0]["channel_name"], "Allowed Voice")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in new issue
Block a user