From 026e466a0d243fb07711d2fffc8ff887b7ac6c50 Mon Sep 17 00:00:00 2001 From: Leonid Gorbunov Date: Mon, 17 Jun 2024 10:37:15 +0300 Subject: [PATCH] feat: Added manager, personal_number fields into UserFromCSV --- pybotx/client/users_api/user_from_csv.py | 15 ++++++++++++++- pybotx/models/users.py | 4 ++++ pyproject.toml | 2 +- tests/client/users_api/test_users_as_csv.py | 10 +++++++--- 4 files changed, 26 insertions(+), 5 deletions(-) diff --git a/pybotx/client/users_api/user_from_csv.py b/pybotx/client/users_api/user_from_csv.py index 3e058dcd..c022d388 100644 --- a/pybotx/client/users_api/user_from_csv.py +++ b/pybotx/client/users_api/user_from_csv.py @@ -25,9 +25,20 @@ class BotXAPIUserFromCSVResult(VerifiedPayloadBaseModel): company: Optional[str] = Field(alias="Company") department: Optional[str] = Field(alias="Department") position: Optional[str] = Field(alias="Position") + manager: Optional[str] = Field(alias="Manager") manager_huid: Optional[UUID] = Field(alias="Manager HUID") + personnel_number: Optional[str] = Field(alias="Personnel number") - @validator("email", "company", "department", "position", "manager_huid", pre=True) + @validator( + "email", + "company", + "department", + "position", + "manager", + "manager_huid", + "personnel_number", + pre=True, + ) @classmethod def replace_empty_string_with_none(cls, field_value: str) -> Optional[str]: if field_value == "": @@ -48,5 +59,7 @@ def to_domain(self) -> UserFromCSV: company=self.company, department=self.department, position=self.position, + manager=self.manager, manager_huid=self.manager_huid, + personnel_number=self.personnel_number, ) diff --git a/pybotx/models/users.py b/pybotx/models/users.py index 6301ba85..024c35e2 100644 --- a/pybotx/models/users.py +++ b/pybotx/models/users.py @@ -49,7 +49,9 @@ class UserFromCSV: company: User company. department: User department. position: User position. + manager: User's manager full name. manager_huid: User's manager huid. + personnel_number: User's tabel number. """ huid: UUID @@ -63,4 +65,6 @@ class UserFromCSV: company: Optional[str] = None department: Optional[str] = None position: Optional[str] = None + manager: Optional[str] = None manager_huid: Optional[UUID] = None + personnel_number: Optional[str] = None diff --git a/pyproject.toml b/pyproject.toml index 015eb704..731023e2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "pybotx" -version = "0.68.0" +version = "0.68.1" description = "A python library for interacting with eXpress BotX API" authors = [ "Sidnev Nikolay ", diff --git a/tests/client/users_api/test_users_as_csv.py b/tests/client/users_api/test_users_as_csv.py index 9c49ff50..794a8b9a 100644 --- a/tests/client/users_api/test_users_as_csv.py +++ b/tests/client/users_api/test_users_as_csv.py @@ -72,9 +72,9 @@ async def test__users_as_csv__succeed( return_value=httpx.Response( status_code=HTTPStatus.OK, content=( - b"HUID,AD Login,Domain,AD E-mail,Name,Sync source,Active,Kind,Company,Department,Position,Manager HUID\n" - b"dbc8934f-d0d7-4a9e-89df-d45c137a851c,test_user_17,cts.example.com,,test_user_17,ad,false,cts_user,Company,Department,Position,13a6909c-bce1-4dbf-8359-efb7ef8e5b34\n" - b"13a6909c-bce1-4dbf-8359-efb7ef8e5b34,test_user_18,cts.example.com,,test_user_18,unsupported,true,cts_user,,,," + b"HUID,AD Login,Domain,AD E-mail,Name,Sync source,Active,Kind,Company,Department,Position,Manager,Manager HUID,Personnel number\n" + b"dbc8934f-d0d7-4a9e-89df-d45c137a851c,test_user_17,cts.example.com,,test_user_17,ad,false,cts_user,Company,Department,Position,Manager John,13a6909c-bce1-4dbf-8359-efb7ef8e5b34,Some number\n" + b"13a6909c-bce1-4dbf-8359-efb7ef8e5b34,test_user_18,cts.example.com,,test_user_18,unsupported,true,cts_user,,,,,," ), ), ) @@ -103,6 +103,8 @@ async def test__users_as_csv__succeed( company="Company", department="Department", position="Position", + personnel_number="Some number", + manager="Manager John", manager_huid=UUID("13a6909c-bce1-4dbf-8359-efb7ef8e5b34"), ), UserFromCSV( @@ -117,6 +119,8 @@ async def test__users_as_csv__succeed( company=None, department=None, position=None, + manager=None, manager_huid=None, + personnel_number=None, ), ]