mirror of
https://github.com/aiogram/aiogram.git
synced 2026-04-08 16:37:47 +00:00
AIOG-T-50. ChatMember files fixed
* linter warnings fixed * potential bug fixed * external variable removed * too broad import fixed
This commit is contained in:
parent
5ce94e2309
commit
53db44101f
2 changed files with 36 additions and 23 deletions
|
|
@ -3,8 +3,9 @@ from __future__ import annotations
|
|||
import datetime
|
||||
from typing import TYPE_CHECKING, Optional, Union
|
||||
|
||||
from .base import TelegramObject
|
||||
from ...utils import helper
|
||||
from ...utils.helper import HelperMode, Item
|
||||
from .base import TelegramObject
|
||||
|
||||
if TYPE_CHECKING: # pragma: no cover
|
||||
from .user import User
|
||||
|
|
@ -73,18 +74,24 @@ class ChatMember(TelegramObject):
|
|||
|
||||
@property
|
||||
def is_chat_member(self) -> bool:
|
||||
return self.status not in {ChatMemberStatus.LEFT, ChatMemberStatus.KICKED}
|
||||
return self.status in {
|
||||
ChatMemberStatus.CREATOR,
|
||||
ChatMemberStatus.MEMBER,
|
||||
ChatMemberStatus.ADMINISTRATOR,
|
||||
ChatMemberStatus.RESTRICTED,
|
||||
}
|
||||
|
||||
|
||||
class ChatMemberStatus(helper.Helper):
|
||||
"""
|
||||
Chat member status
|
||||
"""
|
||||
mode = helper.HelperMode.lowercase
|
||||
|
||||
CREATOR = helper.Item() # creator
|
||||
ADMINISTRATOR = helper.Item() # administrator
|
||||
MEMBER = helper.Item() # member
|
||||
RESTRICTED = helper.Item() # restricted
|
||||
LEFT = helper.Item() # left
|
||||
KICKED = helper.Item() # kicked
|
||||
mode = HelperMode.lowercase
|
||||
|
||||
CREATOR = Item()
|
||||
ADMINISTRATOR = Item()
|
||||
MEMBER = Item()
|
||||
RESTRICTED = Item()
|
||||
LEFT = Item()
|
||||
KICKED = Item()
|
||||
|
|
|
|||
|
|
@ -2,33 +2,39 @@ import pytest
|
|||
|
||||
from aiogram.api.types import ChatMember, User
|
||||
|
||||
user = User(id=42, is_bot=False, first_name="User", last_name=None)
|
||||
|
||||
|
||||
class TestChatMember:
|
||||
def setup(self):
|
||||
self.__user = User(id=42, is_bot=False, first_name="User", last_name=None)
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"status,result",
|
||||
"status, expected_status",
|
||||
[
|
||||
["administrator", True],
|
||||
["creator", True],
|
||||
["member", False]
|
||||
]
|
||||
["member", False],
|
||||
["restricted", False],
|
||||
["kicked", False],
|
||||
["left", False],
|
||||
["durov", False], # not a valid status value, method should return False
|
||||
],
|
||||
)
|
||||
def test_is_chat_admin(self, status: str, result: bool):
|
||||
chat_member = ChatMember(user=user, status=status)
|
||||
assert chat_member.is_chat_admin == result
|
||||
def test_is_chat_admin(self, status: str, expected_status: bool):
|
||||
chat_member = ChatMember(user=self.__user, status=status)
|
||||
assert chat_member.is_chat_admin == expected_status
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"status,result",
|
||||
"status, expected_status",
|
||||
[
|
||||
["administrator", True],
|
||||
["creator", True],
|
||||
["member", True],
|
||||
["restricted", True],
|
||||
["kicked", False],
|
||||
["left", False]
|
||||
]
|
||||
["left", False],
|
||||
["onotole", False], # not a valid status value, method should return False
|
||||
],
|
||||
)
|
||||
def test_is_chat_member(self, status: str, result: bool):
|
||||
chat_member = ChatMember(user=user, status=status)
|
||||
assert chat_member.is_chat_member == result
|
||||
def test_is_chat_member(self, status: str, expected_status: bool):
|
||||
chat_member = ChatMember(user=self.__user, status=status)
|
||||
assert chat_member.is_chat_member == expected_status
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue