Skip to content

Commit 3b2b392

Browse files
authored
add locale to user (#478)
add locale to user
1 parent f454e0a commit 3b2b392

File tree

4 files changed

+33
-0
lines changed

4 files changed

+33
-0
lines changed

tests/test_user_management.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -414,6 +414,7 @@ def test_get_user(self, mock_user, capture_and_mock_http_client_request):
414414
assert user.id == "user_01H7ZGXFP5C6BBQY6Z7277ZCT0"
415415
assert user.profile_picture_url == "https://example.com/profile-picture.jpg"
416416
assert user.last_sign_in_at == "2021-06-25T19:07:33.155Z"
417+
assert user.locale == "en-US"
417418

418419
def test_get_user_by_external_id(
419420
self, mock_user, capture_and_mock_http_client_request
@@ -434,6 +435,7 @@ def test_get_user_by_external_id(
434435
assert user.id == "user_01H7ZGXFP5C6BBQY6Z7277ZCT0"
435436
assert user.profile_picture_url == "https://example.com/profile-picture.jpg"
436437
assert user.last_sign_in_at == "2021-06-25T19:07:33.155Z"
438+
assert user.locale == "en-US"
437439
assert user.metadata == mock_user["metadata"]
438440

439441
def test_list_users_auto_pagination(
@@ -492,6 +494,29 @@ def test_update_user(self, mock_user, capture_and_mock_http_client_request):
492494
"password": "password",
493495
}
494496

497+
def test_update_user_with_locale(
498+
self, mock_user, capture_and_mock_http_client_request
499+
):
500+
request_kwargs = capture_and_mock_http_client_request(
501+
self.http_client, mock_user, 200
502+
)
503+
504+
params = {
505+
"first_name": "Marcelina",
506+
"locale": "fr-FR",
507+
}
508+
user = syncify(
509+
self.user_management.update_user(
510+
user_id="user_01H7ZGXFP5C6BBQY6Z7277ZCT0", **params
511+
)
512+
)
513+
514+
assert request_kwargs["url"].endswith("users/user_01H7ZGXFP5C6BBQY6Z7277ZCT0")
515+
assert user.id == "user_01H7ZGXFP5C6BBQY6Z7277ZCT0"
516+
assert request_kwargs["method"] == "put"
517+
assert request_kwargs["json"]["first_name"] == "Marcelina"
518+
assert request_kwargs["json"]["locale"] == "fr-FR"
519+
495520
def test_delete_user(self, capture_and_mock_http_client_request):
496521
request_kwargs = capture_and_mock_http_client_request(
497522
http_client=self.http_client, status_code=204

tests/utils/fixtures/mock_user.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ def __init__(self, id):
1515
email_verified=False,
1616
profile_picture_url="https://example.com/profile-picture.jpg",
1717
last_sign_in_at="2021-06-25T19:07:33.155Z",
18+
locale="en-US",
1819
created_at=now,
1920
updated_at=now,
2021
metadata={"key": "value"},

workos/types/user_management/user.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ class User(WorkOSModel):
1515
email_verified: bool
1616
profile_picture_url: Optional[str] = None
1717
last_sign_in_at: Optional[str] = None
18+
locale: Optional[str] = None
1819
created_at: str
1920
updated_at: str
2021
external_id: Optional[str] = None

workos/user_management.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,7 @@ def update_user(
225225
password_hash_type: Optional[PasswordHashType] = None,
226226
external_id: Optional[str] = None,
227227
metadata: Optional[Metadata] = None,
228+
locale: Optional[str] = None,
228229
) -> SyncOrAsync[User]:
229230
"""Update user attributes.
230231
@@ -237,6 +238,7 @@ def update_user(
237238
password (str): The password to set for the user. (Optional)
238239
password_hash (str): The hashed password to set for the user, used when migrating from another user store. Mutually exclusive with password. (Optional)
239240
password_hash_type (str): The algorithm originally used to hash the password, used when providing a password_hash. Valid values are 'bcrypt', `firebase-scrypt`, and `ssha`. (Optional)
241+
locale (str): The user's locale. (Optional)
240242
241243
Returns:
242244
User: Updated User response from WorkOS.
@@ -1002,6 +1004,7 @@ def update_user(
10021004
password_hash_type: Optional[PasswordHashType] = None,
10031005
external_id: Optional[str] = None,
10041006
metadata: Optional[Metadata] = None,
1007+
locale: Optional[str] = None,
10051008
) -> User:
10061009
json = {
10071010
"first_name": first_name,
@@ -1013,6 +1016,7 @@ def update_user(
10131016
"password_hash_type": password_hash_type,
10141017
"external_id": external_id,
10151018
"metadata": metadata,
1019+
"locale": locale,
10161020
}
10171021

10181022
response = self._http_client.request(
@@ -1688,6 +1692,7 @@ async def update_user(
16881692
password_hash_type: Optional[PasswordHashType] = None,
16891693
external_id: Optional[str] = None,
16901694
metadata: Optional[Metadata] = None,
1695+
locale: Optional[str] = None,
16911696
) -> User:
16921697
json = {
16931698
"first_name": first_name,
@@ -1699,6 +1704,7 @@ async def update_user(
16991704
"password_hash_type": password_hash_type,
17001705
"external_id": external_id,
17011706
"metadata": metadata,
1707+
"locale": locale,
17021708
}
17031709

17041710
response = await self._http_client.request(

0 commit comments

Comments
 (0)