Refactor scenario configuration to support suites and enhance CLI - #60
Merged
Conversation
atti92
marked this pull request as ready for review
November 30, 2025 19:33
Contributor
Author
|
@RomanPszonka You think we can merge this, or you would like some changes? |
Contributor
There was a problem hiding this comment.
Pull request overview
This PR refactors the verification tool's scenario configuration from a flat list to a hierarchical suite-based structure, enabling better test organization and selective execution via CLI. The changes introduce the concept of "Test Suites" which group related scenarios together (e.g., "basic_conformance" and "extra") and allow per-scenario configuration overrides within each suite.
Key Changes
- Introduced
SuiteConfigandSuiteScenariomodels to support hierarchical test organization with suite-level data file overrides - Enhanced CLI with
--suiteflag to selectively run specific test suites - Refactored dependency injection system to support
Annotatedtypes as dependency keys, changing fromTypetoobjecttype parameters
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
config/default.yaml |
Restructured configuration from flat scenarios dict to nested suites structure with scenario lists |
src/openutm_verification/core/execution/config_models.py |
Added SuiteConfig and SuiteScenario models; updated AppConfig to use suites dict and added target_suites runtime field; extended RunContext with suite context |
src/openutm_verification/core/execution/dependency_resolution.py |
Changed dependency system types from Type to object to support Annotated types; updated CONTEXT default with suite fields |
src/openutm_verification/core/execution/dependencies.py |
Refactored scenarios() to iterate through suites; updated data_files() to apply suite-level overrides; added context setting with suite information |
src/openutm_verification/core/execution/execution.py |
Added suite_name enrichment to scenario results from execution context |
src/openutm_verification/core/reporting/reporting_models.py |
Added optional suite_name field to ScenarioResult for tracking test suite membership |
src/openutm_verification/core/templates/report_template.html |
Updated scenario display to show suite name badge when present |
src/openutm_verification/cli/parser.py |
Added --suite argument supporting multiple suite selection |
src/openutm_verification/cli/__init__.py |
Added suite validation and target_suites configuration before execution |
VerificationFlowDiagram.md |
Updated flow diagram to reflect suite-based iteration |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Feature: Implement Test Suites for Scenario Organization
Closes: #50
Description
This PR introduces the concept of "Test Suites" to the verification tool, replacing the flat list of scenarios. This allows for better organization of test cases (e.g., grouping by "Basic Conformance" vs "Edge Cases") and enables users to execute specific groups of tests selectively via the CLI.
Key Changes
Configuration Restructuring
AppConfiganddefault.yamlto replace the top-levelscenarioslist with asuitesdictionary.SuiteConfigandSuiteScenariomodels to handle suite-specific settings and overrides.CLI Enhancements
-s/--suiteargument to the CLI.python -m openutm_verification --suite basic_conformance).Execution Logic
scenarios()dependency provider to iterate through configured suites.suite_name.Dependency Injection Refactoring
dependencydecorator andDependencyResolverto better handleAnnotatedtypes (likeScenarioId) and fix type hinting issues.RunContextto include suite information.Reporting
suite_namefield toScenarioResultto ensure this context is captured in the final JSON/HTML reports.Documentation
VerificationFlowDiagram.mdto reflect the new suite-based execution flow.Breaking Changes
config.yamlhas changed. The top-levelscenarioskey is deprecated and replaced bysuites. Existing configuration files will need to be updated to the new format: