From a874b811ac70877283d73f51ba7ef9772f99ed73 Mon Sep 17 00:00:00 2001 From: Dmitry Mikhalev Date: Mon, 15 Jun 2026 12:44:07 +0500 Subject: [PATCH 1/3] Add fields for user avatar in search methods --- .gitignore | 3 +++ pybotx/client/users_api/user_from_search.py | 9 ++++++++- pybotx/models/users.py | 4 ++++ tests/fixtures/users_api.py | 22 +++++++++++++++++++++ 4 files changed, 37 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index eca21968..97b1bc8b 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,6 @@ htmlcov site .snippets*/ .idea/ +.hypothesis/ +.vscode/ +.python-version \ No newline at end of file diff --git a/pybotx/client/users_api/user_from_search.py b/pybotx/client/users_api/user_from_search.py index 17d6ba34..2c1c8ffb 100644 --- a/pybotx/client/users_api/user_from_search.py +++ b/pybotx/client/users_api/user_from_search.py @@ -2,16 +2,19 @@ from typing import Literal from uuid import UUID +from pydantic import Field, field_validator + from pybotx.models.api_base import VerifiedPayloadBaseModel from pybotx.models.enums import APIUserKinds, convert_user_kind_to_domain from pybotx.models.users import UserFromSearch -from pydantic import Field, field_validator class BotXAPISearchUserResult(VerifiedPayloadBaseModel): user_huid: UUID ad_login: str | None = None ad_domain: str | None = None + avatar: str | None = None + avatar_preview: str | None = None name: str company: str | None = None company_position: str | None = None @@ -50,6 +53,8 @@ def to_domain(self) -> UserFromSearch: huid=self.result.user_huid, ad_login=self.result.ad_login, ad_domain=self.result.ad_domain, + avatar=self.result.avatar, + avatar_preview=self.result.avatar_preview, username=self.result.name, company=self.result.company, company_position=self.result.company_position, @@ -82,6 +87,8 @@ def to_domain(self) -> list[UserFromSearch]: huid=user.user_huid, ad_login=user.ad_login, ad_domain=user.ad_domain, + avatar=user.avatar, + avatar_preview=user.avatar_preview, username=user.name, company=user.company, company_position=user.company_position, diff --git a/pybotx/models/users.py b/pybotx/models/users.py index 79bb736e..b0ca61ca 100644 --- a/pybotx/models/users.py +++ b/pybotx/models/users.py @@ -13,6 +13,8 @@ class UserFromSearch: huid: User huid. ad_login: User AD login. ad_domain: User AD domain. + avatar: User avatar (link). + avatar_preview: User avatar preview (link). username: User name. company: User company. company_position: User company position. @@ -44,6 +46,8 @@ class UserFromSearch: emails: list[str] other_id: str | None user_kind: UserKinds + avatar: str | None = None + avatar_preview: str | None = None active: bool | None = None description: str | None = None ip_phone: str | None = None diff --git a/tests/fixtures/users_api.py b/tests/fixtures/users_api.py index 5196615f..3875bbcc 100644 --- a/tests/fixtures/users_api.py +++ b/tests/fixtures/users_api.py @@ -13,6 +13,16 @@ def user_from_search_with_data_json() -> dict[str, Any]: "user_huid": "6fafda2c-6505-57a5-a088-25ea5d1d0364", "ad_login": "ad_user_login", "ad_domain": "cts.com", + "avatar": ( + "https://cts1dev.ccsteam.ru/uploads/profile_avatar/fa13e946-121b-52ce-aa92-677b51d19d83/" + "3ebb64d5e2f54e1ab9a3f2ff8096f55a.jpg" + "?v=1780399650402&sid=a619fcfa-a19b-5256-a592-9b0e75ca0896" + ), + "avatar_preview": ( + "https://cts1dev.ccsteam.ru/uploads/profile_avatar/fa13e946-121b-52ce-aa92-677b51d19d83/" + "0a1294c14df84a1ea13c62483ec6cd0f.jpg?" + "v=1780399650402&sid=a619fcfa-a19b-5256-a592-9b0e75ca0896" + ), "name": "Bob", "company": "Bobs Co", "company_position": "Director", @@ -40,6 +50,16 @@ def user_from_search_with_data() -> UserFromSearch: huid=UUID("6fafda2c-6505-57a5-a088-25ea5d1d0364"), ad_login="ad_user_login", ad_domain="cts.com", + avatar=( + "https://cts1dev.ccsteam.ru/uploads/profile_avatar/fa13e946-121b-52ce-aa92-677b51d19d83/" + "3ebb64d5e2f54e1ab9a3f2ff8096f55a.jpg" + "?v=1780399650402&sid=a619fcfa-a19b-5256-a592-9b0e75ca0896" + ), + avatar_preview=( + "https://cts1dev.ccsteam.ru/uploads/profile_avatar/fa13e946-121b-52ce-aa92-677b51d19d83/" + "0a1294c14df84a1ea13c62483ec6cd0f.jpg?" + "v=1780399650402&sid=a619fcfa-a19b-5256-a592-9b0e75ca0896" + ), username="Bob", company="Bobs Co", company_position="Director", @@ -95,6 +115,8 @@ def user_from_search_without_data() -> UserFromSearch: huid=UUID("6fafda2c-6505-57a5-a088-25ea5d1d0364"), ad_login="ad_user_login", ad_domain="cts.com", + avatar=None, + avatar_preview=None, username="Bob", company="Bobs Co", company_position="Director", From 9d471c87b46e4d2c13e99528689fe22cfd6c1fe4 Mon Sep 17 00:00:00 2001 From: Dmitry Mikhalev Date: Mon, 15 Jun 2026 12:45:24 +0500 Subject: [PATCH 2/3] Bump project version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 0a190876..b635e579 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "pybotx" -version = "0.76.4" +version = "0.76.5" description = "A python library for interacting with eXpress BotX API" authors = [ "Sidnev Nikolay ", From 5c96882832459b94df109219b7ee7d844a822ca7 Mon Sep 17 00:00:00 2001 From: Dmitry Mikhalev Date: Mon, 15 Jun 2026 12:54:12 +0500 Subject: [PATCH 3/3] Change host in fixtures --- tests/fixtures/users_api.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/fixtures/users_api.py b/tests/fixtures/users_api.py index 3875bbcc..d26b3368 100644 --- a/tests/fixtures/users_api.py +++ b/tests/fixtures/users_api.py @@ -14,12 +14,12 @@ def user_from_search_with_data_json() -> dict[str, Any]: "ad_login": "ad_user_login", "ad_domain": "cts.com", "avatar": ( - "https://cts1dev.ccsteam.ru/uploads/profile_avatar/fa13e946-121b-52ce-aa92-677b51d19d83/" + "https://test-cts.ru/uploads/profile_avatar/fa13e946-121b-52ce-aa92-677b51d19d83/" "3ebb64d5e2f54e1ab9a3f2ff8096f55a.jpg" "?v=1780399650402&sid=a619fcfa-a19b-5256-a592-9b0e75ca0896" ), "avatar_preview": ( - "https://cts1dev.ccsteam.ru/uploads/profile_avatar/fa13e946-121b-52ce-aa92-677b51d19d83/" + "https://test-cts.ru/uploads/profile_avatar/fa13e946-121b-52ce-aa92-677b51d19d83/" "0a1294c14df84a1ea13c62483ec6cd0f.jpg?" "v=1780399650402&sid=a619fcfa-a19b-5256-a592-9b0e75ca0896" ), @@ -51,12 +51,12 @@ def user_from_search_with_data() -> UserFromSearch: ad_login="ad_user_login", ad_domain="cts.com", avatar=( - "https://cts1dev.ccsteam.ru/uploads/profile_avatar/fa13e946-121b-52ce-aa92-677b51d19d83/" + "https://test-cts.ru/uploads/profile_avatar/fa13e946-121b-52ce-aa92-677b51d19d83/" "3ebb64d5e2f54e1ab9a3f2ff8096f55a.jpg" "?v=1780399650402&sid=a619fcfa-a19b-5256-a592-9b0e75ca0896" ), avatar_preview=( - "https://cts1dev.ccsteam.ru/uploads/profile_avatar/fa13e946-121b-52ce-aa92-677b51d19d83/" + "https://test-cts.ru/uploads/profile_avatar/fa13e946-121b-52ce-aa92-677b51d19d83/" "0a1294c14df84a1ea13c62483ec6cd0f.jpg?" "v=1780399650402&sid=a619fcfa-a19b-5256-a592-9b0e75ca0896" ),