mirror of
https://github.com/aiogram/aiogram.git
synced 2025-12-12 10:11:52 +00:00
parent
b8893c0971
commit
70088cdd65
3 changed files with 41 additions and 0 deletions
1
CHANGES/929.feature.rst
Normal file
1
CHANGES/929.feature.rst
Normal file
|
|
@ -0,0 +1 @@
|
|||
Added `full_name` shortcut for `Chat` object
|
||||
|
|
@ -80,6 +80,21 @@ class Chat(TelegramObject):
|
|||
shift = int(-1 * pow(10, len(short_id) + 2))
|
||||
return shift - self.id
|
||||
|
||||
@property
|
||||
def full_name(self) -> str:
|
||||
"""Get full name of the Chat.
|
||||
|
||||
For private chat it is first_name + last_name.
|
||||
For other chat types it is title.
|
||||
"""
|
||||
if self.title is not None:
|
||||
return self.title
|
||||
|
||||
if self.last_name is not None:
|
||||
return f"{self.first_name} {self.last_name}"
|
||||
|
||||
return f"{self.first_name}"
|
||||
|
||||
def ban_sender_chat(self, sender_chat_id: int) -> BanChatSenderChat:
|
||||
from ..methods import BanChatSenderChat
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
from typing import Optional
|
||||
|
||||
from pytest import mark, param
|
||||
|
||||
from aiogram.types import Chat
|
||||
|
||||
|
||||
|
|
@ -15,3 +19,24 @@ class TestChat:
|
|||
method = chat.unban_sender_chat(sender_chat_id=-1337)
|
||||
assert method.chat_id == chat.id
|
||||
assert method.sender_chat_id == -1337
|
||||
|
||||
@mark.parametrize(
|
||||
"first,last,title,chat_type,result",
|
||||
[
|
||||
param("First", None, None, "private", "First", id="private_first_only"),
|
||||
param("First", "Last", None, "private", "First Last", id="private_with_last"),
|
||||
param(None, None, "Title", "group", "Title", id="group_with_title"),
|
||||
param(None, None, "Title", "supergroup", "Title", id="supergroup_with_title"),
|
||||
param(None, None, "Title", "channel", "Title", id="channel_with_title"),
|
||||
],
|
||||
)
|
||||
def test_full_name(
|
||||
self,
|
||||
first: Optional[str],
|
||||
last: Optional[str],
|
||||
title: Optional[str],
|
||||
chat_type: str,
|
||||
result: str,
|
||||
):
|
||||
chat = Chat(id=42, first_name=first, last_name=last, title=title, type=chat_type)
|
||||
assert chat.full_name == result
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue