Skip to content

Commit

Permalink
Merge pull request #26136 from teowa/fix_TestDataSourcesWithAnEncrypt…
Browse files Browse the repository at this point in the history
…ionBlockBehaveConsistently

provider - add exception for data source in unit test checking `encryption` block
  • Loading branch information
jackofallops authored May 31, 2024
2 parents 30f62cd + d02fd1d commit 3eea317
Showing 1 changed file with 7 additions and 10 deletions.
17 changes: 7 additions & 10 deletions internal/provider/provider_schema_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -433,19 +433,16 @@ func TestDataSourcesWithAnEncryptionBlockBehaveConsistently(t *testing.T) {

// TODO: 4.0 - work through this list
dataSourcesWhichNeedToBeAddressed := map[string]struct{}{
"azurerm_app_configuration": {},
"azurerm_batch_account": {},
"azurerm_batch_pool": {},
"azurerm_managed_disk": {},
"azurerm_snapshot": {},
"azurerm_managed_disk": {},
"azurerm_snapshot": {},
}
if features.FourPointOhBeta() {
dataSourcesWhichNeedToBeAddressed = map[string]struct{}{}
}

for _, dataSourceName := range dataSourceNames {
dataSource := provider.DataSourcesMap[dataSourceName]
if err := schemaContainsAnEncryptionBlock(dataSource.Schema); err != nil {
if err := schemaContainsAnEncryptionBlock(dataSource.Schema, false); err != nil {
if _, ok := dataSourcesWhichNeedToBeAddressed[dataSourceName]; ok {
continue
}
Expand Down Expand Up @@ -490,7 +487,7 @@ func TestResourcesWithAnEncryptionBlockBehaveConsistently(t *testing.T) {
for _, resourceName := range resourceNames {
resource := provider.ResourcesMap[resourceName]

if err := schemaContainsAnEncryptionBlock(resource.Schema); err != nil {
if err := schemaContainsAnEncryptionBlock(resource.Schema, true); err != nil {
if _, ok := resourcesWhichNeedToBeAddressed[resourceName]; ok {
continue
}
Expand All @@ -499,7 +496,7 @@ func TestResourcesWithAnEncryptionBlockBehaveConsistently(t *testing.T) {
}
}

func schemaContainsAnEncryptionBlock(input map[string]*schema.Schema) error {
func schemaContainsAnEncryptionBlock(input map[string]*schema.Schema, isResource bool) error {
// intentionally sorting these so the output is consistent
fieldNames := make([]string, 0)
for fieldName := range input {
Expand All @@ -513,7 +510,7 @@ func schemaContainsAnEncryptionBlock(input map[string]*schema.Schema) error {

if field.Type == pluginsdk.TypeList && field.Elem != nil {
if strings.Contains(key, "encryption") {
if field.Computed {
if isResource && field.Computed {
return fmt.Errorf("the block %q is marked as Computed when it shouldn't be", fieldName)
}

Expand Down Expand Up @@ -541,7 +538,7 @@ func schemaContainsAnEncryptionBlock(input map[string]*schema.Schema) error {
}

if val, ok := field.Elem.(*pluginsdk.Resource); ok && val.Schema != nil {
if err := schemaContainsAnEncryptionBlock(val.Schema); err != nil {
if err := schemaContainsAnEncryptionBlock(val.Schema, isResource); err != nil {
return fmt.Errorf("field %q: %+v", fieldName, err)
}
}
Expand Down

0 comments on commit 3eea317

Please sign in to comment.