55import pytest
66
77from connectomics .config import Config , save_config
8+ from connectomics .config .schema .stages import TuneConfig
89from connectomics .training .lightning .data_factory import _calculate_validation_steps_per_epoch
910from connectomics .training .lightning .path_utils import (
1011 expand_file_paths as canonical_expand_file_paths ,
@@ -27,6 +28,9 @@ def _make_args(
2728 fast_dev_run : int = 0 ,
2829 mode : str = "train" ,
2930 nnunet_preprocess : bool = False ,
31+ tune_timeout : int | None = None ,
32+ tune_trial_timeout : int | None = None ,
33+ tune_trials : int | None = None ,
3034):
3135 return argparse .Namespace (
3236 config = str (config_path ),
@@ -42,7 +46,9 @@ def _make_args(
4246 external_prefix = None ,
4347 params = None ,
4448 param_source = None ,
45- tune_trials = None ,
49+ tune_trials = tune_trials ,
50+ tune_timeout = tune_timeout ,
51+ tune_trial_timeout = tune_trial_timeout ,
4652 nnunet_preprocess = nnunet_preprocess ,
4753 overrides = overrides or [],
4854 )
@@ -84,6 +90,27 @@ def test_setup_config_enables_nnunet_preprocess_from_cli_switch(tmp_path):
8490 assert updated .data .nnunet_preprocessing .enabled is True
8591
8692
93+ def test_setup_config_applies_tune_timeout_cli_overrides (tmp_path ):
94+ cfg = Config ()
95+ cfg .tune = TuneConfig ()
96+
97+ cfg_path = tmp_path / "config.yaml"
98+ save_config (cfg , cfg_path )
99+
100+ args = _make_args (
101+ cfg_path ,
102+ mode = "tune" ,
103+ tune_trials = 17 ,
104+ tune_timeout = 3600 ,
105+ tune_trial_timeout = 300 ,
106+ )
107+ updated = setup_config (args )
108+
109+ assert updated .tune .n_trials == 17
110+ assert updated .tune .timeout == 3600
111+ assert updated .tune .trial_timeout == 300
112+
113+
87114def test_expand_file_paths_handles_globs_and_lists (tmp_path ):
88115 data_dir = tmp_path / "data"
89116 data_dir .mkdir ()
0 commit comments