Skip to content

Commit d96e103

Browse files
Robert Segald3rky
authored andcommitted
Added user set password endpoint
1 parent 898faf5 commit d96e103

2 files changed

Lines changed: 30 additions & 6 deletions

File tree

mpt_api_client/resources/accounts/users.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,15 @@ def sso_check(self, resource_id: str, resource_data: ResourceData | None = None)
5252
"""
5353
return self._resource_action(resource_id, "POST", "sso-check", json=resource_data)
5454

55+
def set_password(self, resource_id: str, resource_data: ResourceData | None = None) -> User:
56+
"""Set password for a user.
57+
58+
Args:
59+
resource_id: Resource ID
60+
resource_data: Resource data will be updated
61+
"""
62+
return self._resource_action(resource_id, "POST", "set-password", json=resource_data)
63+
5564

5665
class AsyncUsersService(
5766
AsyncUpdateMixin[User],
@@ -79,3 +88,14 @@ async def sso_check(self, resource_id: str, resource_data: ResourceData | None =
7988
resource_data: Resource data will be updated
8089
"""
8190
return await self._resource_action(resource_id, "POST", "sso-check", json=resource_data)
91+
92+
async def set_password(
93+
self, resource_id: str, resource_data: ResourceData | None = None
94+
) -> User:
95+
"""Set password for a user.
96+
97+
Args:
98+
resource_id: Resource ID
99+
resource_data: Resource data will be updated
100+
"""
101+
return await self._resource_action(resource_id, "POST", "set-password", json=resource_data)

tests/resources/accounts/test_users.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@ def async_users_service(async_http_client):
1616

1717

1818
@pytest.mark.parametrize(
19-
"method", ["get", "update", "delete", "block", "unblock", "sso", "sso_check"]
19+
"method", ["get", "update", "delete", "block", "unblock", "sso", "sso_check", "set_password"]
2020
)
2121
def test_mixins_present(users_service, method):
2222
assert hasattr(users_service, method)
2323

2424

2525
@pytest.mark.parametrize(
26-
"method", ["get", "update", "delete", "block", "unblock", "sso", "sso_check"]
26+
"method", ["get", "update", "delete", "block", "unblock", "sso", "sso_check", "set_password"]
2727
)
2828
def test_async_mixins_present(async_users_service, method):
2929
assert hasattr(async_users_service, method)
@@ -34,9 +34,10 @@ def test_async_mixins_present(async_users_service, method):
3434
[
3535
("sso", {"id": "OBJ-0000-0001", "status": "update"}),
3636
("sso_check", {"id": "OBJ-0000-0001", "status": "update"}),
37+
("set_password", {"id": "OBJ-0000-0001", "status": "update"}),
3738
],
3839
)
39-
def test_sso_resource_actions(users_service, action, input_status):
40+
def test_resource_actions(users_service, action, input_status):
4041
request_expected_content = b'{"id":"OBJ-0000-0001","status":"update"}'
4142
response_expected_data = {"id": "OBJ-0000-0001", "status": "new_status"}
4243
with respx.mock:
@@ -63,9 +64,10 @@ def test_sso_resource_actions(users_service, action, input_status):
6364
[
6465
("sso", None),
6566
("sso_check", None),
67+
("set_password", None),
6668
],
6769
)
68-
def test_sso_resource_actions_no_data(users_service, action, input_status):
70+
def test_resource_actions_no_data(users_service, action, input_status):
6971
request_expected_content = b""
7072
response_expected_data = {"id": "OBJ-0000-0001", "status": "new_status"}
7173
with respx.mock:
@@ -92,9 +94,10 @@ def test_sso_resource_actions_no_data(users_service, action, input_status):
9294
[
9395
("sso", {"id": "OBJ-0000-0001", "status": "update"}),
9496
("sso_check", {"id": "OBJ-0000-0001", "status": "update"}),
97+
("set_password", {"id": "OBJ-0000-0001", "status": "update"}),
9598
],
9699
)
97-
async def test_async_sso_resource_actions(async_users_service, action, input_status):
100+
async def test_async_resource_actions(async_users_service, action, input_status):
98101
request_expected_content = b'{"id":"OBJ-0000-0001","status":"update"}'
99102
response_expected_data = {"id": "OBJ-0000-0001", "status": "new_status"}
100103
with respx.mock:
@@ -121,9 +124,10 @@ async def test_async_sso_resource_actions(async_users_service, action, input_sta
121124
[
122125
("sso", None),
123126
("sso_check", None),
127+
("set_password", None),
124128
],
125129
)
126-
async def test_async_sso_resource_actions_no_data(async_users_service, action, input_status):
130+
async def test_async_resource_actions_no_data(async_users_service, action, input_status):
127131
request_expected_content = b""
128132
response_expected_data = {"id": "OBJ-0000-0001", "status": "new_status"}
129133
with respx.mock:

0 commit comments

Comments
 (0)