Skip to content

Commit 5b66d8d

Browse files
committed
Pull out Scenarios generation to reduce complexity
1 parent f505eaa commit 5b66d8d

File tree

1 file changed

+31
-13
lines changed

1 file changed

+31
-13
lines changed

src/molecule/command/base.py

+31-13
Original file line numberDiff line numberDiff line change
@@ -139,19 +139,7 @@ def execute_cmdline_scenarios(
139139
if config.scenario.name not in excludes
140140
)
141141

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)
155143

156144
for scenario in scenarios:
157145
if scenario.config.config["prerun"]:
@@ -188,6 +176,36 @@ def execute_cmdline_scenarios(
188176
raise
189177

190178

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+
191209
def execute_subcommand(
192210
current_config: config.Config,
193211
subcommand_and_args: str,

0 commit comments

Comments
 (0)