aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorGravatar Hassan Abouelela <[email protected]>2021-02-04 13:07:16 +0300
committerGravatar Hassan Abouelela <[email protected]>2021-02-04 13:07:16 +0300
commitbaa907f5ef056ec3001759cc6f9a9523953afc39 (patch)
tree8918623882f3b3bfd9fc4a9e8414ef6033c8b509 /tests
parentMerge remote-tracking branch 'origin/voicechannel-mute' into voicechannel-mute (diff)
Adds Move To Failure Tests
Signed-off-by: Hassan Abouelela <[email protected]>
Diffstat (limited to 'tests')
-rw-r--r--tests/bot/exts/moderation/test_silence.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/bot/exts/moderation/test_silence.py b/tests/bot/exts/moderation/test_silence.py
index 2d85af7e0..70fe756fd 100644
--- a/tests/bot/exts/moderation/test_silence.py
+++ b/tests/bot/exts/moderation/test_silence.py
@@ -224,6 +224,32 @@ class SilenceCogTests(unittest.IsolatedAsyncioTestCase):
else:
self.assertEqual((None,), member.move_to.call_args_list[0].args)
+ async def test_voice_move_to_error(self):
+ """Test to ensure move_to get called on all members, even if some fail."""
+ await self.cog._async_init()
+
+ def failing_move_to(*_):
+ raise Exception()
+ failing_members = [MockMember(move_to=Mock(failing_move_to)) for _ in range(5)]
+
+ members = []
+ for i in range(5):
+ members.append(MockMember())
+ members.append(failing_members[i])
+
+ channel = MockVoiceChannel(members=members)
+
+ with self.subTest("Kick"):
+ await self.cog._kick_voice_members(channel)
+ for member in members:
+ member.move_to.assert_called_once()
+ member.reset_mock()
+
+ with self.subTest("Sync"):
+ await self.cog._force_voice_sync(channel)
+ for member in members:
+ self.assertEqual(member.move_to.call_count, 1 if member in failing_members else 2)
+
@autospec(silence.Silence, "previous_overwrites", "unsilence_timestamps", pass_mocks=False)
class RescheduleTests(unittest.IsolatedAsyncioTestCase):