aboutsummaryrefslogtreecommitdiffstats
path: root/tests/cogs/test_vclogs.py
blob: da41482bacfb8d4c631e9c937b45a9c2eee15d8f (plain) (blame)
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
84
85
86
87
88
import pytest
from unittest.mock import AsyncMock, patch, MagicMock
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("cogs.vclogs.get_connection") as mock_conn:
        mock_cursor = MagicMock()
        mock_conn.return_value.cursor.return_value = mock_cursor
        mock_conn.return_value.close.return_value = None
        mock_cursor.fetchall.return_value = []

        from cogs.vclogs import load_activity_data
        data = load_activity_data()
        assert isinstance(data, dict)


def test_save_activity_data():
    with patch("cogs.vclogs.get_connection") as mock_conn:
        mock_cursor = MagicMock()
        mock_conn.return_value.cursor.return_value = mock_cursor
        mock_conn.return_value.commit.return_value = None
        mock_conn.return_value.close.return_value = None

        from cogs.vclogs import save_activity_data
        save_activity_data({"123": {"active": True}})


@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