fix(resource): add overlay to ResourceTypeConfigSchema._VALID_STRATEGIES
CI / push-validation (pull_request) Successful in 25s
CI / helm (pull_request) Successful in 28s
CI / build (pull_request) Successful in 28s
CI / lint (pull_request) Successful in 53s
CI / quality (pull_request) Successful in 52s
CI / typecheck (pull_request) Successful in 54s
CI / security (pull_request) Successful in 1m27s
CI / unit_tests (pull_request) Successful in 8m0s
CI / docker (pull_request) Successful in 1m54s
CI / coverage (pull_request) Successful in 15m56s
CI / integration_tests (pull_request) Successful in 29m30s
CI / status-check (pull_request) Successful in 3s
CI / helm (push) Successful in 28s
CI / lint (push) Successful in 43s
CI / push-validation (push) Successful in 21s
CI / build (push) Successful in 50s
CI / quality (push) Successful in 1m6s
CI / e2e_tests (push) Successful in 55s
CI / typecheck (push) Successful in 1m27s
CI / security (push) Successful in 1m27s
CI / benchmark-regression (push) Failing after 39s
CI / unit_tests (push) Successful in 15m13s
CI / docker (push) Successful in 1m36s
CI / integration_tests (push) Successful in 25m29s
CI / coverage (push) Successful in 16m5s
CI / status-check (push) Successful in 2s
CI / benchmark-publish (push) Has been cancelled
CI / push-validation (pull_request) Successful in 25s
CI / helm (pull_request) Successful in 28s
CI / build (pull_request) Successful in 28s
CI / lint (pull_request) Successful in 53s
CI / quality (pull_request) Successful in 52s
CI / typecheck (pull_request) Successful in 54s
CI / security (pull_request) Successful in 1m27s
CI / unit_tests (pull_request) Successful in 8m0s
CI / docker (pull_request) Successful in 1m54s
CI / coverage (pull_request) Successful in 15m56s
CI / integration_tests (pull_request) Successful in 29m30s
CI / status-check (pull_request) Successful in 3s
CI / helm (push) Successful in 28s
CI / lint (push) Successful in 43s
CI / push-validation (push) Successful in 21s
CI / build (push) Successful in 50s
CI / quality (push) Successful in 1m6s
CI / e2e_tests (push) Successful in 55s
CI / typecheck (push) Successful in 1m27s
CI / security (push) Successful in 1m27s
CI / benchmark-regression (push) Failing after 39s
CI / unit_tests (push) Successful in 15m13s
CI / docker (push) Successful in 1m36s
CI / integration_tests (push) Successful in 25m29s
CI / coverage (push) Successful in 16m5s
CI / status-check (push) Successful in 2s
CI / benchmark-publish (push) Has been cancelled
Implemented test coverage and documentation updates to ensure overlay is properly recognized and communicated across the sandbox strategy validation surface.
- Verification: Confirmed that overlay already exists in the _VALID_STRATEGIES frozenset within src/cleveragents/resource/schema.py (introduced in a prior commit that closed issue #2827).
- Comprehensive audit: Audited strategy validation points to ensure consistency:
- _VALID_STRATEGIES in schema.py
- _IMPLEMENTED_STRATEGIES and _SUPPORTED_STRATEGIES in factory.py
- SandboxStrategy enum definitions in both resource.py and resource_type.py
All include overlay as an allowed strategy.
- Tests: Added a new BDD scenario titled: "Invalid sandbox_strategy error message lists overlay as allowed" to features/consolidated_resource.feature. This asserts that validation errors explicitly list overlay among the allowed values when an invalid strategy is used.
- Documentation: Updated docstring in src/cleveragents/infrastructure/sandbox/strategy_registry.py to reflect that the built-in SandboxFactory handles six strategies, including snapshot and overlay.
- Design considerations: The fix itself was already applied in a previous commit (dbf3b8d7) addressing #2827. Issue #3614, raised by the UAT bot, required additional test coverage and accurate documentation of the available strategies.
- Impact: No behavioral changes beyond ensuring test coverage and documentation are aligned with the existing implementation. The added test guarantees that error messages remain accurate and comprehensive as strategies evolve.
- Affected areas: resource/schema.py, factory.py, resource.py, resource_type.py, features/consolidated_resource.feature, strategy_registry.py.
ISSUES CLOSED: #3614
This commit was merged in pull request #3846.
This commit is contained in:
@@ -895,3 +895,9 @@ Feature: Consolidated Resource
|
||||
Given a resource type YAML with sandbox_strategy "overlay"
|
||||
When I load the resource type via from_yaml
|
||||
Then the loaded schema sandbox_strategy should be "overlay"
|
||||
|
||||
|
||||
Scenario: Invalid sandbox_strategy error message lists overlay as allowed
|
||||
Given a resource type YAML with invalid sandbox_strategy
|
||||
When I try to load the resource type via from_yaml
|
||||
Then the schema loader should fail with "overlay"
|
||||
|
||||
@@ -81,8 +81,8 @@ class SandboxStrategyRegistry:
|
||||
:class:`SandboxStrategyProtocol` at registration time.
|
||||
|
||||
Built-in strategies (``none``, ``git_worktree``, ``copy_on_write``,
|
||||
``transaction_rollback``) are not managed by this registry; they
|
||||
are handled by :class:`SandboxFactory`.
|
||||
``transaction_rollback``, ``snapshot``, ``overlay``) are not managed
|
||||
by this registry; they are handled by :class:`SandboxFactory`.
|
||||
|
||||
Usage::
|
||||
|
||||
|
||||
Reference in New Issue
Block a user