11import logging
22
33import pytest
4+ from pydantic import ValidationError
45
6+ from conductor .asyncio_client .adapters import ApiClient
57from conductor .asyncio_client .adapters .api .application_resource_api import (
68 ApplicationResourceApiAdapter ,
79)
4244from conductor .asyncio_client .orkes .orkes_authorization_client import (
4345 OrkesAuthorizationClient ,
4446)
45- from conductor .asyncio_client .adapters import ApiClient
4647from conductor .shared .http .enums import SubjectType , TargetType
4748
48-
4949APP_ID = "5d860b70-a429-4b20-8d28-6b5198155882"
5050APP_NAME = "ut_application_name"
5151USER_ID = "us_user@orkes.io"
@@ -155,17 +155,15 @@ def disable_logging():
155155
156156def test_init (authorization_client ):
157157 message = "application_api is not of type ApplicationResourceApi"
158- assert isinstance (
159- authorization_client .application_api , ApplicationResourceApiAdapter
160- ), message
158+ assert isinstance (authorization_client .application_api , ApplicationResourceApiAdapter ), message
161159 message = "user_api is not of type UserResourceApi"
162160 assert isinstance (authorization_client .user_api , UserResourceApiAdapter ), message
163161 message = "group_api is not of type GroupResourceApi"
164162 assert isinstance (authorization_client .group_api , GroupResourceApiAdapter ), message
165163 message = "authorization_api is not of type AuthorizationResourceApi"
166- assert isinstance (
167- authorization_client . authorization_api , AuthorizationResourceApiAdapter
168- ), message
164+ assert isinstance (authorization_client . authorization_api , AuthorizationResourceApiAdapter ), (
165+ message
166+ )
169167
170168
171169@pytest .mark .asyncio
@@ -174,9 +172,7 @@ async def test_create_application(
174172):
175173 mock = mocker .patch .object (ApplicationResourceApiAdapter , "create_application" )
176174 mock .return_value = extended_conductor_application_adapter
177- app = await authorization_client .create_application (
178- extended_conductor_application_adapter
179- )
175+ app = await authorization_client .create_application (extended_conductor_application_adapter )
180176 mock .assert_called_with (
181177 create_or_update_application_request = extended_conductor_application_adapter
182178 )
@@ -271,9 +267,7 @@ async def test_delete_user(mocker, authorization_client):
271267
272268
273269@pytest .mark .asyncio
274- async def test_list_users_with_apps (
275- mocker , authorization_client , conductor_user_adapter
276- ):
270+ async def test_list_users_with_apps (mocker , authorization_client , conductor_user_adapter ):
277271 mock = mocker .patch .object (UserResourceApiAdapter , "list_users" )
278272 mock .return_value = [conductor_user_adapter ]
279273 users = await authorization_client .list_users (include_apps = True )
@@ -397,9 +391,7 @@ async def test_remove_users_from_group(mocker, authorization_client):
397391
398392
399393@pytest .mark .asyncio
400- async def test_get_users_in_group (
401- mocker , authorization_client , conductor_user_adapter , roles
402- ):
394+ async def test_get_users_in_group (mocker , authorization_client , conductor_user_adapter , roles ):
403395 mock = mocker .patch .object (GroupResourceApiAdapter , "get_users_in_group" )
404396 mock .return_value = [conductor_user_adapter ]
405397 users = await authorization_client .get_users_in_group (GROUP_ID )
@@ -491,3 +483,122 @@ async def test_get_group_permissions(mocker, authorization_client: OrkesAuthoriz
491483 }
492484 ]
493485 }
486+
487+
488+ @pytest .mark .asyncio
489+ async def test_create_access_key_empty_string_converts_to_none (mocker , authorization_client ):
490+ from conductor .asyncio_client .http .api .application_resource_api import (
491+ ApplicationResourceApi ,
492+ )
493+
494+ mock = mocker .patch .object (ApplicationResourceApi , "create_access_key" )
495+ mock .return_value = {
496+ "id" : "test-key-id" ,
497+ "secret" : "test-secret" ,
498+ }
499+ await authorization_client .create_access_key ("" )
500+ mock .assert_called_with (id = None )
501+
502+
503+ @pytest .mark .asyncio
504+ async def test_add_role_to_application_user_empty_strings_convert_to_none (
505+ mocker , authorization_client
506+ ):
507+ from conductor .asyncio_client .http .api .application_resource_api import (
508+ ApplicationResourceApi ,
509+ )
510+
511+ mock = mocker .patch .object (ApplicationResourceApi , "add_role_to_application_user" )
512+ await authorization_client .add_role_to_application_user ("" , "" )
513+ mock .assert_called_with (application_id = None , role = None )
514+
515+
516+ @pytest .mark .asyncio
517+ async def test_delete_access_key_empty_strings_convert_to_none (mocker , authorization_client ):
518+ from conductor .asyncio_client .http .api .application_resource_api import (
519+ ApplicationResourceApi ,
520+ )
521+
522+ mock = mocker .patch .object (ApplicationResourceApi , "delete_access_key" )
523+ await authorization_client .delete_access_key ("" , "" )
524+ mock .assert_called_with (application_id = None , key_id = None )
525+
526+
527+ @pytest .mark .asyncio
528+ async def test_remove_role_from_application_user_empty_strings_convert_to_none (
529+ mocker , authorization_client
530+ ):
531+ from conductor .asyncio_client .http .api .application_resource_api import (
532+ ApplicationResourceApi ,
533+ )
534+
535+ mock = mocker .patch .object (ApplicationResourceApi , "remove_role_from_application_user" )
536+ await authorization_client .remove_role_from_application_user ("" , "" )
537+ mock .assert_called_with (application_id = None , role = None )
538+
539+
540+ @pytest .mark .asyncio
541+ async def test_get_app_by_access_key_id_empty_string_converts_to_none (
542+ mocker , authorization_client , extended_conductor_application_adapter
543+ ):
544+ from conductor .asyncio_client .http .api .application_resource_api import (
545+ ApplicationResourceApi ,
546+ )
547+
548+ mock = mocker .patch .object (ApplicationResourceApi , "get_app_by_access_key_id" )
549+ mock .return_value = extended_conductor_application_adapter
550+ await authorization_client .get_app_by_access_key_id ("" )
551+ mock .assert_called_with (access_key_id = None )
552+
553+
554+ @pytest .mark .asyncio
555+ async def test_get_access_keys_empty_string_converts_to_none (mocker , authorization_client ):
556+ from conductor .asyncio_client .http .api .application_resource_api import (
557+ ApplicationResourceApi ,
558+ )
559+
560+ mock = mocker .patch .object (ApplicationResourceApi , "get_access_keys" )
561+ mock .return_value = []
562+ await authorization_client .get_access_keys ("" )
563+ mock .assert_called_with (id = None )
564+
565+
566+ @pytest .mark .asyncio
567+ async def test_toggle_access_key_status_empty_strings_convert_to_none (mocker , authorization_client ):
568+ from conductor .asyncio_client .http .api .application_resource_api import (
569+ ApplicationResourceApi ,
570+ )
571+
572+ mock = mocker .patch .object (ApplicationResourceApi , "toggle_access_key_status" )
573+ mock .return_value = {
574+ "id" : "test-key-id" ,
575+ "createdAt" : 1698926045112 ,
576+ "status" : "INACTIVE" ,
577+ }
578+ await authorization_client .toggle_access_key_status ("" , "" )
579+ mock .assert_called_with (application_id = None , key_id = None )
580+
581+
582+ @pytest .mark .asyncio
583+ async def test_get_tags_for_application_empty_string_converts_to_none (mocker , authorization_client ):
584+ from conductor .asyncio_client .http .api .application_resource_api import (
585+ ApplicationResourceApi ,
586+ )
587+
588+ mock = mocker .patch .object (ApplicationResourceApi , "get_tags_for_application" )
589+ mock .return_value = []
590+ await authorization_client .get_application_tags ("" )
591+ mock .assert_called_with (id = None )
592+
593+
594+ @pytest .mark .asyncio
595+ async def test_delete_tag_for_application_empty_strings_convert_to_none (
596+ mocker , authorization_client
597+ ):
598+ from conductor .asyncio_client .http .api .application_resource_api import (
599+ ApplicationResourceApi ,
600+ )
601+
602+ mock = mocker .patch .object (ApplicationResourceApi , "delete_tag_for_application" )
603+ await authorization_client .delete_application_tags ([], "" )
604+ mock .assert_called_with (id = None , tag = None )
0 commit comments