forked from cleveragents/cleveragents-core
55 lines
2.6 KiB
Gherkin
55 lines
2.6 KiB
Gherkin
Feature: Cloud Handler Coverage
|
|
Scenarios that exercise previously uncovered code paths in the
|
|
cloud resource handler module (resource/handlers/cloud.py).
|
|
|
|
Background:
|
|
Given the cloud handler module is imported
|
|
|
|
# --- extract_provider: hierarchical prefix matching (lines 249-251) ---
|
|
|
|
Scenario: extract_provider returns aws for hierarchical aws-account type
|
|
When I extract the provider from type name "aws-account"
|
|
Then the extracted provider should be "aws"
|
|
|
|
Scenario: extract_provider returns gcp for hierarchical gcp-project type
|
|
When I extract the provider from type name "gcp-project"
|
|
Then the extracted provider should be "gcp"
|
|
|
|
Scenario: extract_provider returns azure for hierarchical azure-vm type
|
|
When I extract the provider from type name "azure-vm"
|
|
Then the extracted provider should be "azure"
|
|
|
|
# --- extract_provider: returns None for generic cloud-* (line 253) ---
|
|
|
|
Scenario: extract_provider returns None for generic cloud base type
|
|
When I extract the provider from type name "cloud-generic"
|
|
Then the extracted provider should be None
|
|
|
|
# --- resolve_credentials: explicit properties take priority (lines 302-303) ---
|
|
|
|
Scenario: resolve_credentials uses explicit properties over env vars
|
|
Given chcov the environment variable "AWS_ACCESS_KEY_ID" is set to "env-key"
|
|
When I resolve credentials for provider "aws" with explicit property "access-key-id" set to "explicit-key"
|
|
Then the resolved credential "access-key-id" should be "explicit-key"
|
|
|
|
# --- validate_credentials: unknown provider (lines 331-333) ---
|
|
|
|
Scenario: validate_credentials returns errors for unknown provider
|
|
When I validate credentials for unknown provider "digitalocean"
|
|
Then the validation errors should mention unknown provider "digitalocean"
|
|
|
|
# --- CloudResourceHandler.resolve: generic cloud-* type (lines 420-423) ---
|
|
|
|
Scenario: CloudResourceHandler.resolve raises NotImplementedError for generic cloud type
|
|
Given I have a cloud resource with type "cloud-storage"
|
|
When I call resolve on the cloud resource handler
|
|
Then a NotImplementedError should be raised mentioning generic type "cloud-storage"
|
|
|
|
# --- CloudResourceHandler.resolve: unknown provider mapping (lines 428-431) ---
|
|
|
|
Scenario: CloudResourceHandler.resolve raises ValueError for unknown provider mapping
|
|
Given I have a cloud resource with type "fake-cloud-type"
|
|
And extract_provider is mocked to return "digitalocean"
|
|
When I call resolve on the cloud resource handler expecting a ValueError
|
|
Then a ValueError should be raised mentioning unknown provider "digitalocean"
|