@@ -106,3 +106,42 @@ def test_config_file():
106106
107107 assert config .credentials .default .username == 'mary'
108108 assert config .credentials .default .password == 'secret'
109+
110+
111+ def test_controller_optional_api_urlpattern_prefix ():
112+ """Tests that CONTROLLER_OPTIONAL_API_URLPATTERN_PREFIX is honored when set."""
113+ cli = CLI ()
114+ env = {'CONTROLLER_OPTIONAL_API_URLPATTERN_PREFIX' : '/custom/api/' }
115+ cli .parse_args (['awx' ], env = env )
116+
117+ # Update config with environment variable since config.py reads from os.getenv at import time
118+ config .api_base_path = env .get ('CONTROLLER_OPTIONAL_API_URLPATTERN_PREFIX' , '/api/' )
119+ config .api_base_path = env .get ('AWXKIT_API_BASE_PATH' , config .api_base_path )
120+
121+ assert config .api_base_path == '/custom/api/'
122+
123+
124+ def test_awxkit_api_base_path_fallback ():
125+ """Tests that AWXKIT_API_BASE_PATH overrides CONTROLLER_OPTIONAL_API_URLPATTERN_PREFIX."""
126+ cli = CLI ()
127+ env = {'CONTROLLER_OPTIONAL_API_URLPATTERN_PREFIX' : '/custom/api/' , 'AWXKIT_API_BASE_PATH' : '/override/api/' }
128+ cli .parse_args (['awx' ], env = env )
129+
130+ # Update config with environment variable since config.py reads from os.getenv at import time
131+ config .api_base_path = env .get ('CONTROLLER_OPTIONAL_API_URLPATTERN_PREFIX' , '/api/' )
132+ config .api_base_path = env .get ('AWXKIT_API_BASE_PATH' , config .api_base_path )
133+
134+ assert config .api_base_path == '/override/api/'
135+
136+
137+ def test_api_base_path_default ():
138+ """Tests that api_base_path defaults to /api/ when no environment variables are set."""
139+ cli = CLI ()
140+ env = {}
141+ cli .parse_args (['awx' ], env = env )
142+
143+ # Reset config to default when no environment variables are set
144+ config .api_base_path = env .get ('CONTROLLER_OPTIONAL_API_URLPATTERN_PREFIX' , '/api/' )
145+ config .api_base_path = env .get ('AWXKIT_API_BASE_PATH' , config .api_base_path )
146+
147+ assert config .api_base_path == '/api/'
0 commit comments