Skip to content

Commit 62d2993

Browse files
author
Leonid Gorbunov
committed
fix: get_smartapp_list smartapp.name set as optional
1 parent 9219e2e commit 62d2993

File tree

3 files changed

+57
-2
lines changed

3 files changed

+57
-2
lines changed

pybotx/client/smartapps_api/smartapps_list.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class BotXAPISmartAppEntity(VerifiedPayloadBaseModel):
2222
app_id: str
2323
enabled: bool
2424
id: UUID
25-
name: str
25+
name: Optional[str] = None
2626
avatar: Optional[str] = None
2727
avatar_preview: Optional[str] = None
2828

pybotx/models/smartapps.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,6 @@ class SmartApp:
1919
app_id: str
2020
enabled: bool
2121
id: UUID
22-
name: str
22+
name: Optional[str] = None
2323
avatar: Optional[str] = None
2424
avatar_preview: Optional[str] = None

tests/client/smartapps_api/test_smartapps_list.py

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,3 +69,58 @@ async def test__smartapps_list__succeed(
6969
),
7070
]
7171
assert version == 1
72+
73+
74+
async def test__smartapps_list__succeed_without_name(
75+
respx_mock: MockRouter,
76+
host: str,
77+
bot_id: UUID,
78+
bot_account: BotAccountWithSecret,
79+
) -> None:
80+
# - Arrange -
81+
endpoint = respx_mock.get(
82+
f"https://{host}/api/v3/botx/smartapps/list",
83+
headers={"Authorization": "Bearer token"},
84+
).mock(
85+
return_value=httpx.Response(
86+
HTTPStatus.OK,
87+
json={
88+
"result": {
89+
"phonebook_version": 1,
90+
"smartapps": [
91+
{
92+
"app_id": "amazing_smartapp",
93+
"avatar": "https://cts.example.com/uploads/profile_avatar/foo",
94+
"avatar_preview": "https://cts.example.com/uploads/profile_avatar/bar",
95+
"enabled": True,
96+
"id": "dc4acaf2-310f-4b0f-aec7-253b9def42ac",
97+
"name": None,
98+
},
99+
],
100+
},
101+
"status": "ok",
102+
},
103+
),
104+
)
105+
106+
built_bot = Bot(collectors=[HandlerCollector()], bot_accounts=[bot_account])
107+
108+
# - Act -
109+
async with lifespan_wrapper(built_bot) as bot:
110+
smartapps_list, version = await bot.get_smartapps_list(
111+
bot_id=bot_id,
112+
)
113+
114+
# - Assert -
115+
assert endpoint.called
116+
assert smartapps_list == [
117+
SmartApp(
118+
app_id="amazing_smartapp",
119+
avatar="https://cts.example.com/uploads/profile_avatar/foo",
120+
avatar_preview="https://cts.example.com/uploads/profile_avatar/bar",
121+
enabled=True,
122+
id=UUID("dc4acaf2-310f-4b0f-aec7-253b9def42ac"),
123+
name=None,
124+
),
125+
]
126+
assert version == 1

0 commit comments

Comments
 (0)