@@ -383,14 +383,19 @@ def client(configuration):
383383 with ApiClient (configuration ) as api_client :
384384 yield api_client
385385
386+ def _api_name (value ):
387+ value = re .sub (r'[^a-zA-Z0-9]' , '' , value )
388+ return value + "Api"
389+
390+
386391
387392@given (parsers .parse ('an instance of "{name}" API' ))
388393def api (context , package_name , client , name ):
389394 """Return an API instance."""
390395 module_name = snake_case (name )
391396 package = importlib .import_module (f"{ package_name } .api.{ module_name } _api" )
392397 context ["api" ] = {
393- "api" : getattr (package , name + "Api" )(client ),
398+ "api" : getattr (package , _api_name ( name ) )(client ),
394399 "package" : package_name ,
395400 "calls" : [],
396401 }
@@ -479,7 +484,7 @@ def wrapper(context, undo):
479484
480485 package = importlib .import_module (f"{ package_name } .api.{ module_name } _api" )
481486 with ApiClient (configuration ) as client :
482- api = getattr (package , name + "Api" )(client )
487+ api = getattr (package , _api_name ( name ) )(client )
483488 operation_method = getattr (api , operation_name )
484489 params_map = getattr (api , f"_{ operation_name } _endpoint" ).params_map
485490
@@ -565,7 +570,7 @@ def cleanup(api, version, operation_id, response, request, client=client):
565570 undo_name = undo_tag .replace (" " , "" )
566571 undo_module_name = snake_case (undo_tag )
567572 undo_package = importlib .import_module (f"{ package_name } .api.{ undo_module_name } _api" )
568- api = getattr (undo_package , undo_name + "Api" )(client )
573+ api = getattr (undo_package , _api_name ( undo_tag ) )(client )
569574
570575 operation_name = snake_case (operation ["operationId" ])
571576 method = getattr (api , operation_name )
0 commit comments