@@ -139,19 +139,7 @@ def execute_cmdline_scenarios(
139
139
if config .scenario .name not in excludes
140
140
)
141
141
142
- scenarios = molecule .scenarios .Scenarios (
143
- configs ,
144
- scenario_names ,
145
- )
146
-
147
- if scenario_names is not None :
148
- for scenario_name in scenario_names :
149
- if scenario_name != "*" and scenarios :
150
- LOG .info (
151
- "%s scenario test matrix: %s" ,
152
- scenario_name ,
153
- ", " .join (scenarios .sequence (scenario_name )),
154
- )
142
+ scenarios = _generate_scenarios (scenario_names , configs )
155
143
156
144
for scenario in scenarios :
157
145
if scenario .config .config ["prerun" ]:
@@ -188,6 +176,36 @@ def execute_cmdline_scenarios(
188
176
raise
189
177
190
178
179
+ def _generate_scenarios (
180
+ scenario_names : list [str ] | None ,
181
+ configs : list [config .Config ],
182
+ ) -> molecule .scenarios .Scenarios :
183
+ """Generate Scenarios object from names and configs.
184
+
185
+ Args:
186
+ scenario_names: Names of scenarios to include.
187
+ configs: List of Config objects to consider.
188
+
189
+ Returns:
190
+ Combined Scenarios object.
191
+ """
192
+ scenarios = molecule .scenarios .Scenarios (
193
+ configs ,
194
+ scenario_names ,
195
+ )
196
+
197
+ if scenario_names is not None :
198
+ for scenario_name in scenario_names :
199
+ if scenario_name != "*" and scenarios :
200
+ LOG .info (
201
+ "%s scenario test matrix: %s" ,
202
+ scenario_name ,
203
+ ", " .join (scenarios .sequence (scenario_name )),
204
+ )
205
+
206
+ return scenarios
207
+
208
+
191
209
def execute_subcommand (
192
210
current_config : config .Config ,
193
211
subcommand_and_args : str ,
0 commit comments