AIOG-T-44. User property full_name added

* property docstring added
 * unit test parameters added
This commit is contained in:
Igor Sereda 2020-05-31 01:52:12 +03:00
parent 9f11afda5b
commit 27b05c4843
2 changed files with 16 additions and 7 deletions

View file

@ -33,6 +33,9 @@ class User(TelegramObject):
@property
def full_name(self) -> str:
"""
Get full name of user.
"""
if self.last_name:
return f"{self.first_name} {self.last_name}"
return self.first_name

View file

@ -5,16 +5,22 @@ from aiogram.api.types import User
class TestUser:
@pytest.mark.parametrize(
"first,last,result",
"first_name, last_name, expected_full_name",
[
["User", None, "User"],
["", None, ""],
[" ", None, " "],
["User", "Name", "User Name"],
["User", "", "User"],
["User", " ", "User "],
["User", "Name", "User Name"],
[" User", "Name", " User Name"],
["User ", "Name", "User Name"],
["", None, ""],
["", "", ""],
["", " ", " "],
[" ", None, " "],
[" ", "", " "],
[" ", " ", " "],
],
)
def test_full_name(self, first: str, last: str, result: bool):
user = User(id=42, is_bot=False, first_name=first, last_name=last)
assert user.full_name == result
def test_full_name(self, first_name: str, last_name: str, expected_full_name: str):
user = User(id=42, is_bot=False, first_name=first_name, last_name=last_name)
assert user.full_name == expected_full_name