From 87b576da7a513087be0b48d5f1aac4c8e1aa9b65 Mon Sep 17 00:00:00 2001 From: Pam Selle <204372+pselle@users.noreply.github.com> Date: Fri, 18 Dec 2020 14:53:26 -0500 Subject: [PATCH] Roll back test schema expansion and isolate Isolate the test schema expansion, because having NestingSet in the schema actually necessitates [] values in the AttrsJson. While this didn't fail any tests on its addition, that is scary and so isolate this to the one test using it. --- terraform/context_apply_test.go | 36 +++++++++++++++++++++++++++++++-- terraform/context_plan_test.go | 6 +++--- terraform/context_test.go | 9 --------- 3 files changed, 37 insertions(+), 14 deletions(-) diff --git a/terraform/context_apply_test.go b/terraform/context_apply_test.go index f332aeec7..7cbd8ddc0 100644 --- a/terraform/context_apply_test.go +++ b/terraform/context_apply_test.go @@ -11818,7 +11818,39 @@ resource "test_resource" "foo" { }`, }) - p := testProvider("test") + p := new(MockProvider) + p.ReadResourceFn = func(req providers.ReadResourceRequest) providers.ReadResourceResponse { + return providers.ReadResourceResponse{NewState: req.PriorState} + } + p.GetSchemaReturn = &ProviderSchema{ + Provider: &configschema.Block{}, + ResourceTypes: map[string]*configschema.Block{ + "test_resource": { + Attributes: map[string]*configschema.Attribute{ + "id": { + Type: cty.String, + Computed: true, + }, + "value": { + Type: cty.String, + Optional: true, + Computed: true, + }, + }, + BlockTypes: map[string]*configschema.NestedBlock{ + "network_interface": { + Block: configschema.Block{ + Attributes: map[string]*configschema.Attribute{ + "network_interface_id": {Type: cty.String, Optional: true}, + "device_index": {Type: cty.Number, Optional: true}, + }, + }, + Nesting: configschema.NestingSet, + }, + }, + }, + }, + } p.ApplyResourceChangeFn = testApplyFn p.PlanResourceChangeFn = testDiffFn @@ -12049,7 +12081,7 @@ resource "test_resource" "foo" { }.Instance(addrs.NoKey).Absolute(addrs.RootModuleInstance), &states.ResourceInstanceObjectSrc{ Status: states.ObjectReady, - AttrsJSON: []byte(`{"id":"foo", "value":"hello", "network_interface":[]}`), + AttrsJSON: []byte(`{"id":"foo", "value":"hello"}`), // No AttrSensitivePaths present }, addrs.AbsProviderConfig{ diff --git a/terraform/context_plan_test.go b/terraform/context_plan_test.go index 816525129..3fd0e7fab 100644 --- a/terraform/context_plan_test.go +++ b/terraform/context_plan_test.go @@ -6701,10 +6701,10 @@ resource "test_resource" "foo" { }.Instance(addrs.NoKey).Absolute(addrs.RootModuleInstance), &states.ResourceInstanceObjectSrc{ Status: states.ObjectReady, - AttrsJSON: []byte(`{"id":"foo", "value":"hello", "sensitive_value":"hello", "network_interface":[]}`), + AttrsJSON: []byte(`{"id":"foo", "value":"hello", "sensitive_value":"hello"}`), AttrSensitivePaths: []cty.PathValueMarks{ - cty.PathValueMarks{Path: cty.Path{cty.GetAttrStep{Name: "value"}}, Marks: cty.NewValueMarks("sensitive")}, - cty.PathValueMarks{Path: cty.Path{cty.GetAttrStep{Name: "sensitive_value"}}, Marks: cty.NewValueMarks("sensitive")}, + {Path: cty.Path{cty.GetAttrStep{Name: "value"}}, Marks: cty.NewValueMarks("sensitive")}, + {Path: cty.Path{cty.GetAttrStep{Name: "sensitive_value"}}, Marks: cty.NewValueMarks("sensitive")}, }, }, addrs.AbsProviderConfig{ diff --git a/terraform/context_test.go b/terraform/context_test.go index b19ac3681..e934606cf 100644 --- a/terraform/context_test.go +++ b/terraform/context_test.go @@ -599,15 +599,6 @@ func testProviderSchema(name string) *ProviderSchema { }, }, BlockTypes: map[string]*configschema.NestedBlock{ - "network_interface": { - Block: configschema.Block{ - Attributes: map[string]*configschema.Attribute{ - "network_interface_id": {Type: cty.String, Optional: true}, - "device_index": {Type: cty.Number, Optional: true}, - }, - }, - Nesting: configschema.NestingSet, - }, "nesting_single": { Block: configschema.Block{ Attributes: map[string]*configschema.Attribute{