1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
import pytest
from unittest.mock import AsyncMock, patch, MagicMock
import json
from tests.conftest import MockApplicationContext
def test_format_duration():
from cogs.vclogs import format_duration
assert format_duration(30) == "30s"
assert format_duration(90) == "1m 30s"
assert format_duration(3661) == "1h 1m 1s"
def test_load_activity_data():
with patch('builtins.open', MagicMock()):
with patch('os.path.exists', return_value=True):
with patch('json.load', return_value={"123": {"active": True}}):
from cogs.vclogs import load_activity_data
data = load_activity_data()
assert isinstance(data, dict)
def test_save_activity_data():
with patch('builtins.open', MagicMock()) as mock_open:
with patch('json.dump'):
from cogs.vclogs import save_activity_data
save_activity_data({"123": {"active": True}})
mock_open.assert_called_once()
@pytest.fixture
def vclogs_cog(bot):
with patch('cogs.vclogs.get_voice_manager'):
with patch('cogs.vclogs.get_volume', return_value=1.0):
with patch('cogs.vclogs.save_settings'):
from cogs.vclogs import VcLogs
cog = VcLogs(bot)
return cog
@pytest.mark.asyncio
async def test_handle_state_change_deaf_true(vclogs_cog):
mock_member = MagicMock()
mock_member.display_name = "TestUser"
mock_channel = MagicMock()
tts_text, channel = await vclogs_cog.handle_state_change(mock_member, mock_channel, 'deaf', True, None)
assert "jest bity przez ojca" in tts_text
@pytest.mark.asyncio
async def test_handle_state_change_deaf_false(vclogs_cog):
mock_member = MagicMock()
mock_member.display_name = "TestUser"
mock_channel = MagicMock()
tts_text, channel = await vclogs_cog.handle_state_change(mock_member, mock_channel, 'deaf', False, None)
assert "uciek od ojca" in tts_text
@pytest.mark.asyncio
async def test_handle_state_change_mute_true(vclogs_cog):
mock_member = MagicMock()
mock_member.display_name = "TestUser"
mock_channel = MagicMock()
tts_text, channel = await vclogs_cog.handle_state_change(mock_member, mock_channel, 'mute', True, None)
assert "idzie robić jajecznice" in tts_text
@pytest.mark.asyncio
async def test_handle_state_change_mute_false(vclogs_cog):
mock_member = MagicMock()
mock_member.display_name = "TestUser"
mock_channel = MagicMock()
tts_text, channel = await vclogs_cog.handle_state_change(mock_member, mock_channel, 'mute', False, None)
assert "zrobił jajecznice" in tts_text
|