Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions src/openutm_verification/core/execution/config_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,11 +108,12 @@ class SuiteScenario(DataFiles):
class SuiteConfig(StrictBaseModel):
"""Configuration for a test suite."""

scenarios: List[SuiteScenario]
scenarios: Optional[List[SuiteScenario]] = Field(default_factory=list)

def resolve_paths(self, base_path: Path) -> None:
for scenario in self.scenarios:
scenario.resolve_paths(base_path)
if self.scenarios:
for scenario in self.scenarios:
scenario.resolve_paths(base_path)


class AppConfig(StrictBaseModel):
Expand Down
14 changes: 6 additions & 8 deletions src/openutm_verification/core/execution/dependencies.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ def get_scenario_docs(scenario_id: str) -> Optional[str]:
else:
logger.warning(f"Docs file not found: {docs_path}")
return None


def scenarios() -> Iterable[tuple[str, Callable[..., ScenarioResult]]]:
"""Provides scenarios to run with their functions.

Expand All @@ -48,8 +50,9 @@ def scenarios() -> Iterable[tuple[str, Callable[..., ScenarioResult]]]:
continue

suite = config.suites[suite_name]
logger.info(f"Adding suite: {suite_name} with {len(suite.scenarios)} scenarios.")
for suite_scenario in suite.scenarios:
scenarios_list = suite.scenarios or []
logger.info(f"Adding suite: {suite_name} with {len(scenarios_list)} scenarios.")
for suite_scenario in scenarios_list:
scenarios_to_iterate.append((suite_name, suite_scenario))

for suite_name, item in scenarios_to_iterate:
Expand All @@ -63,12 +66,7 @@ def scenarios() -> Iterable[tuple[str, Callable[..., ScenarioResult]]]:
scenario_func = SCENARIO_REGISTRY[scenario_id].get("func")
docs_content = get_scenario_docs(scenario_id)

CONTEXT.set({
"scenario_id": scenario_id,
"suite_scenario": suite_scenario,
"suite_name": suite_name,
"docs": docs_content
})
CONTEXT.set({"scenario_id": scenario_id, "suite_scenario": suite_scenario, "suite_name": suite_name, "docs": docs_content})
yield scenario_id, scenario_func
else:
logger.warning(f"Scenario {scenario_id} not found in registry.")
Expand Down