disnake

Форк
0
/
test_onboarding.py 
102 строки · 3.0 Кб
1
# SPDX-License-Identifier: MIT
2

3
from unittest import mock
4

5
import pytest
6

7
from disnake import (
8
    Guild,
9
    Onboarding,
10
    OnboardingPrompt,
11
    OnboardingPromptOption,
12
    OnboardingPromptType,
13
)
14
from disnake.types import onboarding as onboarding_types
15

16
onboarding_prompt_option_payload: onboarding_types.OnboardingPromptOption = {
17
    "id": "0",
18
    "title": "test",
19
    "description": "test",
20
    "emoji": {"id": "123", "name": "", "animated": False},
21
    "role_ids": ["456", "789"],
22
    "channel_ids": ["123", "456"],
23
}
24

25

26
@pytest.fixture
27
def onboarding_prompt_option() -> OnboardingPromptOption:
28
    return OnboardingPromptOption(
29
        guild=mock.Mock(Guild, id=123),
30
        data=onboarding_types.OnboardingPromptOption(
31
            id="0",
32
            title="test",
33
            description="test",
34
            emoji={"name": "", "id": 123, "animated": False},
35
            role_ids=["456", "789"],
36
            channel_ids=["123", "456"],
37
        ),
38
    )
39

40

41
@pytest.fixture
42
def onboarding_prompt() -> OnboardingPrompt:
43
    onboarding_prompt_payload: onboarding_types.OnboardingPrompt = {
44
        "id": 0,
45
        "title": "test",
46
        "options": [],
47
        "single_select": True,
48
        "required": True,
49
        "in_onboarding": True,
50
        "type": OnboardingPromptType.multiple_choice.value,
51
    }
52

53
    return OnboardingPrompt(data=onboarding_prompt_payload, guild=mock.Mock(Guild, id=123))
54

55

56
@pytest.fixture
57
def onboarding() -> Onboarding:
58
    onboarding_payload: onboarding_types.Onboarding = {
59
        "guild_id": "123",
60
        "prompts": [],
61
        "default_channel_ids": ["456", "789"],
62
        "enabled": True,
63
    }
64

65
    return Onboarding(
66
        guild=mock.Mock(Guild, id=123),
67
        data=onboarding_payload,
68
    )
69

70

71
class TestOnboarding:
72
    def test_onboarding(self, onboarding: Onboarding) -> None:
73
        assert onboarding.guild.id == 123
74
        assert onboarding.prompts == []
75
        assert onboarding.default_channel_ids == frozenset([456, 789])
76
        assert onboarding.enabled is True
77

78

79
class TestOnboardingPrompt:
80
    def test_onboarding_prompt(self, onboarding_prompt: OnboardingPrompt) -> None:
81
        assert onboarding_prompt.title == "test"
82
        assert onboarding_prompt.options == []
83
        assert onboarding_prompt.single_select is True
84
        assert onboarding_prompt.required is True
85
        assert onboarding_prompt.in_onboarding is True
86
        assert onboarding_prompt.type == OnboardingPromptType.multiple_choice
87

88
    def test_onboarding_prompt_str(self, onboarding_prompt: OnboardingPrompt) -> None:
89
        assert str(onboarding_prompt) == "test"
90

91

92
class TestOnboardingPromptOption:
93
    def test_onboarding_prompt_option(
94
        self, onboarding_prompt_option: OnboardingPromptOption
95
    ) -> None:
96
        assert onboarding_prompt_option.title == "test"
97
        assert onboarding_prompt_option.description == "test"
98

99
    def test_onboarding_prompt_option_str(
100
        self, onboarding_prompt_option: OnboardingPromptOption
101
    ) -> None:
102
        assert str(onboarding_prompt_option) == "test"
103

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.