command: Update import_test.go for new provider types
This only makes it compile. It does not yet ensure that the tests pass.
This commit is contained in:
parent
65341b0973
commit
54c1616d73
|
@ -8,11 +8,15 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/mitchellh/cli"
|
||||||
|
"github.com/zclconf/go-cty/cty"
|
||||||
|
|
||||||
"github.com/hashicorp/terraform/helper/copy"
|
"github.com/hashicorp/terraform/helper/copy"
|
||||||
"github.com/hashicorp/terraform/plugin"
|
"github.com/hashicorp/terraform/plugin"
|
||||||
"github.com/hashicorp/terraform/plugin/discovery"
|
"github.com/hashicorp/terraform/plugin/discovery"
|
||||||
|
"github.com/hashicorp/terraform/providers"
|
||||||
"github.com/hashicorp/terraform/terraform"
|
"github.com/hashicorp/terraform/terraform"
|
||||||
"github.com/mitchellh/cli"
|
"github.com/hashicorp/terraform/tfdiags"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestImport(t *testing.T) {
|
func TestImport(t *testing.T) {
|
||||||
|
@ -29,12 +33,14 @@ func TestImport(t *testing.T) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
p.ImportStateFn = nil
|
p.ImportResourceStateFn = nil
|
||||||
p.ImportStateReturn = []*terraform.InstanceState{
|
p.ImportResourceStateResponse = providers.ImportResourceStateResponse{
|
||||||
&terraform.InstanceState{
|
ImportedResources: []providers.ImportedResource{
|
||||||
ID: "yay",
|
{
|
||||||
Ephemeral: terraform.EphemeralState{
|
TypeName: "test_instance",
|
||||||
Type: "test_instance",
|
State: cty.ObjectVal(map[string]cty.Value{
|
||||||
|
"id": cty.StringVal("yay"),
|
||||||
|
}),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -48,8 +54,8 @@ func TestImport(t *testing.T) {
|
||||||
t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter.String())
|
t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
if !p.ImportStateCalled {
|
if !p.ImportResourceStateCalled {
|
||||||
t.Fatal("ImportState should be called")
|
t.Fatal("ImportResourceState should be called")
|
||||||
}
|
}
|
||||||
|
|
||||||
testStateOutput(t, statePath, testImportStr)
|
testStateOutput(t, statePath, testImportStr)
|
||||||
|
@ -69,25 +75,35 @@ func TestImport_providerConfig(t *testing.T) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
p.ImportStateFn = nil
|
p.ImportResourceStateFn = nil
|
||||||
p.ImportStateReturn = []*terraform.InstanceState{
|
p.ImportResourceStateResponse = providers.ImportResourceStateResponse{
|
||||||
&terraform.InstanceState{
|
ImportedResources: []providers.ImportedResource{
|
||||||
ID: "yay",
|
{
|
||||||
Ephemeral: terraform.EphemeralState{
|
TypeName: "test_instance",
|
||||||
Type: "test_instance",
|
State: cty.ObjectVal(map[string]cty.Value{
|
||||||
|
"id": cty.StringVal("yay"),
|
||||||
|
}),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
configured := false
|
configured := false
|
||||||
p.ConfigureFn = func(c *terraform.ResourceConfig) error {
|
p.ConfigureNewFn = func(req providers.ConfigureRequest) providers.ConfigureResponse {
|
||||||
configured = true
|
configured = true
|
||||||
|
|
||||||
if v, ok := c.Get("foo"); !ok || v.(string) != "bar" {
|
cfg := req.Config
|
||||||
return fmt.Errorf("bad value: %#v", v)
|
if !cfg.Type().HasAttribute("foo") {
|
||||||
|
return providers.ConfigureResponse{
|
||||||
|
Diagnostics: tfdiags.Diagnostics{}.Append(fmt.Errorf("configuration has no foo argument")),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if got, want := cfg.GetAttr("foo"), cty.StringVal("bar"); !want.RawEquals(got) {
|
||||||
|
return providers.ConfigureResponse{
|
||||||
|
Diagnostics: tfdiags.Diagnostics{}.Append(fmt.Errorf("foo argument is %#v, but want %#v", got, want)),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return providers.ConfigureResponse{}
|
||||||
}
|
}
|
||||||
|
|
||||||
args := []string{
|
args := []string{
|
||||||
|
@ -104,8 +120,8 @@ func TestImport_providerConfig(t *testing.T) {
|
||||||
t.Fatal("Configure should be called")
|
t.Fatal("Configure should be called")
|
||||||
}
|
}
|
||||||
|
|
||||||
if !p.ImportStateCalled {
|
if !p.ImportResourceStateCalled {
|
||||||
t.Fatal("ImportState should be called")
|
t.Fatal("ImportResourceState should be called")
|
||||||
}
|
}
|
||||||
|
|
||||||
testStateOutput(t, statePath, testImportStr)
|
testStateOutput(t, statePath, testImportStr)
|
||||||
|
@ -151,12 +167,14 @@ func TestImport_remoteState(t *testing.T) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
p.ImportStateFn = nil
|
p.ImportResourceStateFn = nil
|
||||||
p.ImportStateReturn = []*terraform.InstanceState{
|
p.ImportResourceStateResponse = providers.ImportResourceStateResponse{
|
||||||
&terraform.InstanceState{
|
ImportedResources: []providers.ImportedResource{
|
||||||
ID: "yay",
|
{
|
||||||
Ephemeral: terraform.EphemeralState{
|
TypeName: "test_instance",
|
||||||
Type: "test_instance",
|
State: cty.ObjectVal(map[string]cty.Value{
|
||||||
|
"id": cty.StringVal("yay"),
|
||||||
|
}),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -192,8 +210,8 @@ func TestImport_remoteState(t *testing.T) {
|
||||||
t.Fatal("Configure should be called")
|
t.Fatal("Configure should be called")
|
||||||
}
|
}
|
||||||
|
|
||||||
if !p.ImportStateCalled {
|
if !p.ImportResourceStateCalled {
|
||||||
t.Fatal("ImportState should be called")
|
t.Fatal("ImportResourceState should be called")
|
||||||
}
|
}
|
||||||
|
|
||||||
testStateOutput(t, statePath, testImportStr)
|
testStateOutput(t, statePath, testImportStr)
|
||||||
|
@ -213,12 +231,14 @@ func TestImport_providerConfigWithVar(t *testing.T) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
p.ImportStateFn = nil
|
p.ImportResourceStateFn = nil
|
||||||
p.ImportStateReturn = []*terraform.InstanceState{
|
p.ImportResourceStateResponse = providers.ImportResourceStateResponse{
|
||||||
&terraform.InstanceState{
|
ImportedResources: []providers.ImportedResource{
|
||||||
ID: "yay",
|
{
|
||||||
Ephemeral: terraform.EphemeralState{
|
TypeName: "test_instance",
|
||||||
Type: "test_instance",
|
State: cty.ObjectVal(map[string]cty.Value{
|
||||||
|
"id": cty.StringVal("yay"),
|
||||||
|
}),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -249,8 +269,8 @@ func TestImport_providerConfigWithVar(t *testing.T) {
|
||||||
t.Fatal("Configure should be called")
|
t.Fatal("Configure should be called")
|
||||||
}
|
}
|
||||||
|
|
||||||
if !p.ImportStateCalled {
|
if !p.ImportResourceStateCalled {
|
||||||
t.Fatal("ImportState should be called")
|
t.Fatal("ImportResourceState should be called")
|
||||||
}
|
}
|
||||||
|
|
||||||
testStateOutput(t, statePath, testImportStr)
|
testStateOutput(t, statePath, testImportStr)
|
||||||
|
@ -270,12 +290,14 @@ func TestImport_providerConfigWithVarDefault(t *testing.T) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
p.ImportStateFn = nil
|
p.ImportResourceStateFn = nil
|
||||||
p.ImportStateReturn = []*terraform.InstanceState{
|
p.ImportResourceStateResponse = providers.ImportResourceStateResponse{
|
||||||
&terraform.InstanceState{
|
ImportedResources: []providers.ImportedResource{
|
||||||
ID: "yay",
|
{
|
||||||
Ephemeral: terraform.EphemeralState{
|
TypeName: "test_instance",
|
||||||
Type: "test_instance",
|
State: cty.ObjectVal(map[string]cty.Value{
|
||||||
|
"id": cty.StringVal("yay"),
|
||||||
|
}),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -305,8 +327,8 @@ func TestImport_providerConfigWithVarDefault(t *testing.T) {
|
||||||
t.Fatal("Configure should be called")
|
t.Fatal("Configure should be called")
|
||||||
}
|
}
|
||||||
|
|
||||||
if !p.ImportStateCalled {
|
if !p.ImportResourceStateCalled {
|
||||||
t.Fatal("ImportState should be called")
|
t.Fatal("ImportResourceState should be called")
|
||||||
}
|
}
|
||||||
|
|
||||||
testStateOutput(t, statePath, testImportStr)
|
testStateOutput(t, statePath, testImportStr)
|
||||||
|
@ -326,12 +348,14 @@ func TestImport_providerConfigWithVarFile(t *testing.T) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
p.ImportStateFn = nil
|
p.ImportResourceStateFn = nil
|
||||||
p.ImportStateReturn = []*terraform.InstanceState{
|
p.ImportResourceStateResponse = providers.ImportResourceStateResponse{
|
||||||
&terraform.InstanceState{
|
ImportedResources: []providers.ImportedResource{
|
||||||
ID: "yay",
|
{
|
||||||
Ephemeral: terraform.EphemeralState{
|
TypeName: "test_instance",
|
||||||
Type: "test_instance",
|
State: cty.ObjectVal(map[string]cty.Value{
|
||||||
|
"id": cty.StringVal("yay"),
|
||||||
|
}),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -362,8 +386,8 @@ func TestImport_providerConfigWithVarFile(t *testing.T) {
|
||||||
t.Fatal("Configure should be called")
|
t.Fatal("Configure should be called")
|
||||||
}
|
}
|
||||||
|
|
||||||
if !p.ImportStateCalled {
|
if !p.ImportResourceStateCalled {
|
||||||
t.Fatal("ImportState should be called")
|
t.Fatal("ImportResourceState should be called")
|
||||||
}
|
}
|
||||||
|
|
||||||
testStateOutput(t, statePath, testImportStr)
|
testStateOutput(t, statePath, testImportStr)
|
||||||
|
@ -383,12 +407,14 @@ func TestImport_customProvider(t *testing.T) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
p.ImportStateFn = nil
|
p.ImportResourceStateFn = nil
|
||||||
p.ImportStateReturn = []*terraform.InstanceState{
|
p.ImportResourceStateResponse = providers.ImportResourceStateResponse{
|
||||||
&terraform.InstanceState{
|
ImportedResources: []providers.ImportedResource{
|
||||||
ID: "yay",
|
{
|
||||||
Ephemeral: terraform.EphemeralState{
|
TypeName: "test_instance",
|
||||||
Type: "test_instance",
|
State: cty.ObjectVal(map[string]cty.Value{
|
||||||
|
"id": cty.StringVal("yay"),
|
||||||
|
}),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -403,8 +429,8 @@ func TestImport_customProvider(t *testing.T) {
|
||||||
t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter.String())
|
t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
if !p.ImportStateCalled {
|
if !p.ImportResourceStateCalled {
|
||||||
t.Fatal("ImportState should be called")
|
t.Fatal("ImportResourceState should be called")
|
||||||
}
|
}
|
||||||
|
|
||||||
testStateOutput(t, statePath, testImportCustomProviderStr)
|
testStateOutput(t, statePath, testImportCustomProviderStr)
|
||||||
|
@ -424,12 +450,14 @@ func TestImport_allowMissingResourceConfig(t *testing.T) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
p.ImportStateFn = nil
|
p.ImportResourceStateFn = nil
|
||||||
p.ImportStateReturn = []*terraform.InstanceState{
|
p.ImportResourceStateResponse = providers.ImportResourceStateResponse{
|
||||||
{
|
ImportedResources: []providers.ImportedResource{
|
||||||
ID: "yay",
|
{
|
||||||
Ephemeral: terraform.EphemeralState{
|
TypeName: "test_instance",
|
||||||
Type: "test_instance",
|
State: cty.ObjectVal(map[string]cty.Value{
|
||||||
|
"id": cty.StringVal("yay"),
|
||||||
|
}),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -444,8 +472,8 @@ func TestImport_allowMissingResourceConfig(t *testing.T) {
|
||||||
t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter.String())
|
t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
if !p.ImportStateCalled {
|
if !p.ImportResourceStateCalled {
|
||||||
t.Fatal("ImportState should be called")
|
t.Fatal("ImportResourceState should be called")
|
||||||
}
|
}
|
||||||
|
|
||||||
testStateOutput(t, statePath, testImportStr)
|
testStateOutput(t, statePath, testImportStr)
|
||||||
|
|
Loading…
Reference in New Issue