@@ -156,6 +156,84 @@ def test_gui_service_arguments_hierarchy():
156
156
gui .stop ()
157
157
158
158
159
+ def test_cli_arguments_no_run_browser_and_no_reloader ():
160
+ # Test --no-run-browser argument
161
+ with patch ("sys.argv" , ["prog" , "--no-run-browser" ]):
162
+ gui = Gui ()
163
+ gui .run (run_server = False , run_browser = True )
164
+ service_config = gui ._config .config
165
+ assert not service_config ["run_browser" ]
166
+ gui .stop ()
167
+
168
+ # Test --no-reloader argument
169
+ with patch ("sys.argv" , ["prog" , "--no-reloader" ]):
170
+ gui = Gui ()
171
+ gui .run (run_server = False , use_reloader = True )
172
+ service_config = gui ._config .config
173
+ assert not service_config ["use_reloader" ]
174
+ gui .stop ()
175
+
176
+ # Test both arguments together
177
+ with patch ("sys.argv" , ["prog" , "--no-run-browser" , "--no-reloader" ]):
178
+ gui = Gui ()
179
+ gui .run (run_server = False , run_browser = True , use_reloader = True )
180
+ service_config = gui ._config .config
181
+ assert not service_config ["run_browser" ]
182
+ assert not service_config ["use_reloader" ]
183
+ gui .stop ()
184
+
185
+ # Test CLI arguments override TOML configuration
186
+ toml_config = NamedTemporaryFile (
187
+ content = """
188
+ [TAIPY]
189
+
190
+ [gui]
191
+ run_browser = "true:bool"
192
+ use_reloader = "true:bool"
193
+ """
194
+ )
195
+ Config .load (toml_config .filename )
196
+
197
+ with patch ("sys.argv" , ["prog" , "--no-run-browser" , "--no-reloader" ]):
198
+ gui = Gui ()
199
+ gui .run (run_server = False )
200
+ service_config = gui ._config .config
201
+ assert not service_config ["run_browser" ]
202
+ assert not service_config ["use_reloader" ]
203
+ gui .stop ()
204
+
205
+ # Test CLI arguments override Config.configure_gui()
206
+ Config .configure_gui (run_browser = True , use_reloader = True )
207
+
208
+ with patch ("sys.argv" , ["prog" , "--no-run-browser" , "--no-reloader" ]):
209
+ gui = Gui ()
210
+ gui .run (run_server = False )
211
+ service_config = gui ._config .config
212
+ assert not service_config ["run_browser" ]
213
+ assert not service_config ["use_reloader" ]
214
+ gui .stop ()
215
+
216
+ # Test precedence: CLI > TOML > Config.configure_gui() > Gui.run()
217
+ toml_config_2 = NamedTemporaryFile (
218
+ content = """
219
+ [TAIPY]
220
+
221
+ [gui]
222
+ run_browser = "true:bool"
223
+ use_reloader = "false:bool"
224
+ """
225
+ )
226
+ Config .load (toml_config_2 .filename )
227
+ Config .configure_gui (run_browser = False , use_reloader = True )
228
+
229
+ with patch ("sys.argv" , ["prog" , "--no-run-browser" ]):
230
+ gui = Gui ()
231
+ gui .run (run_server = False , run_browser = True , use_reloader = False )
232
+ service_config = gui ._config .config
233
+ assert not service_config ["run_browser" ]
234
+ assert service_config ["use_reloader" ]
235
+ gui .stop ()
236
+
159
237
def test_clean_config ():
160
238
gui_config = Config .configure_gui (dark_mode = False )
161
239
0 commit comments