aboutsummaryrefslogtreecommitdiffstats
path: root/tests/cogs/test_music_integration.py
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--tests/cogs/test_music_integration.py44
1 files changed, 44 insertions, 0 deletions
diff --git a/tests/cogs/test_music_integration.py b/tests/cogs/test_music_integration.py
new file mode 100644
index 0000000..1c0260a
--- /dev/null
+++ b/tests/cogs/test_music_integration.py
@@ -0,0 +1,44 @@
1import pytest
2from unittest.mock import MagicMock, AsyncMock, patch, PropertyMock
3import sys
4sys.path.insert(0, '/home/salmon/Documents/botcode/senator-sperma/tests')
5from conftest import MockApplicationContext
6
7
8@pytest.fixture
9def music_cog(bot):
10 from cogs.music.play_commands import PlayCommands
11 cog = PlayCommands(bot)
12 return cog
13
14
15@pytest.mark.slow
16@pytest.mark.asyncio
17async def test_music_join_stop(music_cog, bot):
18 """Test music join and stop commands."""
19 from cogs.music.join import Join
20 from cogs.music.stop import Stop
21
22 join_cog = Join(bot)
23 stop_cog = Stop(bot)
24
25 ctx = MockApplicationContext(bot=bot)
26 ctx.author.voice = MagicMock()
27 ctx.author.voice.channel = MagicMock()
28 ctx.guild = MagicMock()
29
30 voice_client = AsyncMock()
31 ctx.voice_client = voice_client
32
33 # Test join
34 ctx.author.voice.channel.connect = AsyncMock(return_value=voice_client)
35 with patch.object(ctx, 'respond', new_callable=AsyncMock):
36 with patch.object(ctx.interaction, 'delete_original_response', new_callable=AsyncMock):
37 await join_cog.join.callback(join_cog, ctx)
38 ctx.author.voice.channel.connect.assert_called_once()
39
40 # Test stop
41 with patch.object(ctx, 'respond', new_callable=AsyncMock):
42 with patch.object(ctx.interaction, 'delete_original_response', new_callable=AsyncMock):
43 await stop_cog.stop.callback(stop_cog, ctx)
44 voice_client.disconnect.assert_called_once()