@@ -324,6 +324,24 @@ def fake_run_and_monitor(ctx, offline=False, **kwargs):
324324 assert captured ["kwargs" ]["country_iso_code" ] == "FRA"
325325
326326
327+ def test_monitor_delegates_online_mode_to_run_and_monitor (monkeypatch ):
328+ captured = {}
329+
330+ def fake_run_and_monitor (ctx , offline = False , ** kwargs ):
331+ captured ["offline" ] = offline
332+ captured ["kwargs" ] = kwargs
333+ return "ok"
334+
335+ monkeypatch .setattr (cli_main , "run_and_monitor" , fake_run_and_monitor )
336+ monkeypatch .setattr (cli_main , "get_existing_exp_id" , lambda : "exp-1" )
337+
338+ ctx = SimpleNamespace (args = ["python" , "train.py" ])
339+ result = cli_main .monitor (ctx = ctx , api = True )
340+ assert result == "ok"
341+ assert captured ["offline" ] is False
342+ assert captured ["kwargs" ]["save_to_api" ] is True
343+
344+
327345def test_monitor_delegates_to_run_and_monitor_with_extra_args (monkeypatch ):
328346 captured = {}
329347
@@ -340,3 +358,21 @@ def fake_run_and_monitor(ctx, **kwargs):
340358 assert result == "ok"
341359 assert captured ["args" ] == ["python" , "train.py" ]
342360 assert captured ["kwargs" ]["save_to_api" ] is False
361+
362+
363+ def test_monitor_no_api_skips_experiment_id_requirement (monkeypatch ):
364+ captured = {}
365+
366+ def fake_run_and_monitor (ctx , offline = False , ** kwargs ):
367+ captured ["offline" ] = offline
368+ captured ["kwargs" ] = kwargs
369+ return "ok"
370+
371+ monkeypatch .setattr (cli_main , "run_and_monitor" , fake_run_and_monitor )
372+ monkeypatch .setattr (cli_main , "get_existing_exp_id" , lambda : None )
373+
374+ ctx = SimpleNamespace (args = ["python" , "train.py" ])
375+ result = cli_main .monitor (ctx = ctx , api = False )
376+ assert result == "ok"
377+ assert captured ["offline" ] is False
378+ assert captured ["kwargs" ]["save_to_api" ] is False
0 commit comments