backend/local: more tests passing
I have no confidence in the change to plans/planfile/tfplan.go. The tests were passing an empty backend config, which planfile was able to write to a file but not read from the same file. This change let me move past that and it did not break any tests in the planfile package, but I am concerned that it introduces undesired behavior.
This commit is contained in:
parent
56b879d0c0
commit
6a37ee9277
|
@ -171,7 +171,6 @@ func (b *Local) opPlan(
|
||||||
path, path,
|
path, path,
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -131,10 +131,11 @@ func TestLocal_planNoConfig(t *testing.T) {
|
||||||
func TestLocal_planRefreshFalse(t *testing.T) {
|
func TestLocal_planRefreshFalse(t *testing.T) {
|
||||||
b, cleanup := TestLocal(t)
|
b, cleanup := TestLocal(t)
|
||||||
defer cleanup()
|
defer cleanup()
|
||||||
p := TestLocalProvider(t, b, "test", &terraform.ProviderSchema{})
|
|
||||||
|
p := TestLocalProvider(t, b, "test", planFixtureSchema())
|
||||||
terraform.TestStateFile(t, b.StatePath, testPlanState())
|
terraform.TestStateFile(t, b.StatePath, testPlanState())
|
||||||
|
|
||||||
op, configCleanup := testOperationPlan(t, "./test-fixtures/empty")
|
op, configCleanup := testOperationPlan(t, "./test-fixtures/plan")
|
||||||
defer configCleanup()
|
defer configCleanup()
|
||||||
|
|
||||||
run, err := b.Operation(context.Background(), op)
|
run, err := b.Operation(context.Background(), op)
|
||||||
|
@ -158,6 +159,7 @@ func TestLocal_planRefreshFalse(t *testing.T) {
|
||||||
func TestLocal_planDestroy(t *testing.T) {
|
func TestLocal_planDestroy(t *testing.T) {
|
||||||
b, cleanup := TestLocal(t)
|
b, cleanup := TestLocal(t)
|
||||||
defer cleanup()
|
defer cleanup()
|
||||||
|
|
||||||
p := TestLocalProvider(t, b, "test", planFixtureSchema())
|
p := TestLocalProvider(t, b, "test", planFixtureSchema())
|
||||||
terraform.TestStateFile(t, b.StatePath, testPlanState())
|
terraform.TestStateFile(t, b.StatePath, testPlanState())
|
||||||
|
|
||||||
|
@ -167,7 +169,7 @@ func TestLocal_planDestroy(t *testing.T) {
|
||||||
|
|
||||||
op, configCleanup := testOperationPlan(t, "./test-fixtures/plan")
|
op, configCleanup := testOperationPlan(t, "./test-fixtures/plan")
|
||||||
defer configCleanup()
|
defer configCleanup()
|
||||||
op.Destroy = false
|
op.Destroy = true
|
||||||
op.PlanRefresh = true
|
op.PlanRefresh = true
|
||||||
op.PlanOutPath = planPath
|
op.PlanOutPath = planPath
|
||||||
|
|
||||||
|
@ -189,16 +191,11 @@ func TestLocal_planDestroy(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
plan := testReadPlan(t, planPath)
|
plan := testReadPlan(t, planPath)
|
||||||
// This statement can be removed when the test is fixed and replaced with the
|
for _, r := range plan.Changes.Resources {
|
||||||
// commented-out test below.
|
if r.Action.String() != "Delete" {
|
||||||
if plan == nil {
|
t.Fatalf("bad: %#v", r.Action.String())
|
||||||
t.Fatalf("plan is nil")
|
}
|
||||||
}
|
}
|
||||||
// for _, r := range plan.Changes.Resources {
|
|
||||||
// if !r.Destroy {
|
|
||||||
// t.Fatalf("bad: %#v", r)
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestLocal_planOutPathNoChange(t *testing.T) {
|
func TestLocal_planOutPathNoChange(t *testing.T) {
|
||||||
|
@ -340,6 +337,9 @@ func testReadPlan(t *testing.T, path string) *plans.Plan {
|
||||||
defer p.Close()
|
defer p.Close()
|
||||||
|
|
||||||
plan, err := p.ReadPlan()
|
plan, err := p.ReadPlan()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("err: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
return plan
|
return plan
|
||||||
}
|
}
|
||||||
|
|
|
@ -277,6 +277,10 @@ func changeFromTfplan(rawChange *planproto.Change) (*plans.ChangeSrc, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func valueFromTfplan(rawV *planproto.DynamicValue) (plans.DynamicValue, error) {
|
func valueFromTfplan(rawV *planproto.DynamicValue) (plans.DynamicValue, error) {
|
||||||
|
if rawV.Msgpack == nil {
|
||||||
|
return plans.DynamicValue(nil), nil
|
||||||
|
}
|
||||||
|
|
||||||
if len(rawV.Msgpack) == 0 { // len(0) because that's the default value for a "bytes" in protobuf
|
if len(rawV.Msgpack) == 0 { // len(0) because that's the default value for a "bytes" in protobuf
|
||||||
return nil, fmt.Errorf("dynamic value does not have msgpack serialization")
|
return nil, fmt.Errorf("dynamic value does not have msgpack serialization")
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue