Skip to content

Commit 176788a

Browse files
Empty string for user upsert and delete not allowed
1 parent 0fceab5 commit 176788a

4 files changed

Lines changed: 66 additions & 0 deletions

File tree

src/conductor/asyncio_client/adapters/api/user_resource_api.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from pydantic import StrictStr
22

33
from conductor.asyncio_client.http.api import UserResourceApi
4+
from conductor.asyncio_client.adapters.models import UpsertUserRequestAdapter as UpsertUserRequest
45

56

67
class UserResourceApiAdapter(UserResourceApi):
@@ -23,3 +24,24 @@ async def get_user(
2324
if not id:
2425
id = None
2526
return await super().get_user(id=id, *args, **kwargs)
27+
28+
async def upsert_user(
29+
self,
30+
id: StrictStr,
31+
upsert_user_request: UpsertUserRequest,
32+
*args,
33+
**kwargs,
34+
) -> object:
35+
if not id:
36+
id = None
37+
return await super().upsert_user(id=id, upsert_user_request=upsert_user_request, *args, **kwargs)
38+
39+
async def delete_user(
40+
self,
41+
id: StrictStr,
42+
*args,
43+
**kwargs,
44+
) -> object:
45+
if not id:
46+
id = None
47+
return await super().delete_user(id=id, *args, **kwargs)

src/conductor/client/adapters/api/user_resource_api_adapter.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,13 @@ def get_user(self, id, **kwargs):
1111
if not id:
1212
id = None
1313
return super().get_user(id=id, **kwargs)
14+
15+
def upsert_user(self, id, upsert_user_request, **kwargs):
16+
if not id:
17+
id = None
18+
return super().upsert_user(id=id, upsert_user_request=upsert_user_request, **kwargs)
19+
20+
def delete_user(self, id, **kwargs):
21+
if not id:
22+
id = None
23+
return super().delete_user(id=id, **kwargs)

tests/unit/orkes/test_async_authorization_client.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,14 @@ async def test_delete_user(mocker, authorization_client):
279279
mock.assert_called_with(id=USER_ID)
280280

281281

282+
@pytest.mark.asyncio
283+
async def test_delete_user_with_empty_string(mocker, authorization_client):
284+
from conductor.asyncio_client.http.api import UserResourceApi
285+
mock = mocker.patch.object(UserResourceApi, "delete_user")
286+
await authorization_client.delete_user("")
287+
mock.assert_called_with(id=None)
288+
289+
282290
@pytest.mark.asyncio
283291
async def test_list_users_with_apps(
284292
mocker, authorization_client, conductor_user_adapter
@@ -311,6 +319,16 @@ async def test_upsert_user(mocker, authorization_client, conductor_user_adapter)
311319
assert user.uuid == USER_UUID
312320

313321

322+
@pytest.mark.asyncio
323+
async def test_upsert_user_with_empty_string(mocker, authorization_client, conductor_user_adapter):
324+
from conductor.asyncio_client.http.api import UserResourceApi
325+
mock = mocker.patch.object(UserResourceApi, "upsert_user")
326+
upsert_req = UpsertUserRequestAdapter(name=USER_NAME, roles=["ADMIN"])
327+
mock.return_value = conductor_user_adapter
328+
await authorization_client.upsert_user("", upsert_req)
329+
mock.assert_called_with(id=None, upsert_user_request=upsert_req)
330+
331+
314332
@pytest.mark.asyncio
315333
async def test_create_group(mocker, authorization_client, group_adapter):
316334
mock = mocker.patch.object(GroupResourceApiAdapter, "upsert_group")

tests/unit/orkes/test_authorization_client.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,15 @@ def test_upsert_user(mocker, authorization_client, conductor_user, roles):
301301
assert user.roles == roles
302302

303303

304+
def test_upsert_user_with_empty_string(mocker, authorization_client, conductor_user, roles):
305+
from conductor.client.codegen.api.user_resource_api import UserResourceApi
306+
mock = mocker.patch.object(UserResourceApi, "upsert_user")
307+
upsertReq = UpsertUserRequest(USER_NAME, ["ADMIN"])
308+
mock.return_value = conductor_user.to_dict()
309+
authorization_client.upsert_user("", upsertReq)
310+
mock.assert_called_with(id=None, upsert_user_request=upsertReq)
311+
312+
304313
def test_get_user(mocker, authorization_client, conductor_user, roles):
305314
mock = mocker.patch.object(UserResourceApi, "get_user")
306315
mock.return_value = conductor_user.to_dict()
@@ -342,6 +351,13 @@ def test_delete_user(mocker, authorization_client):
342351
mock.assert_called_with(USER_ID)
343352

344353

354+
def test_delete_user_with_empty_string(mocker, authorization_client):
355+
from conductor.client.codegen.api.user_resource_api import UserResourceApi
356+
mock = mocker.patch.object(UserResourceApi, "delete_user")
357+
authorization_client.delete_user("")
358+
mock.assert_called_with(id=None)
359+
360+
345361
def test_upsert_group(mocker, authorization_client, conductor_group, group_roles):
346362
mock = mocker.patch.object(GroupResourceApi, "upsert_group")
347363
upsertReq = UpsertGroupRequest(GROUP_NAME, ["USER"])

0 commit comments

Comments
 (0)