Merge pull request #15506 from hashicorp/jbardin/helper-testing

Automatically insert providers for import acceptance tests
This commit is contained in:
James Bardin 2017-07-07 17:06:46 -04:00 committed by GitHub
commit a4ee13b8c2
1 changed files with 16 additions and 0 deletions

View File

@ -406,6 +406,10 @@ func Test(t TestT, c TestCase) {
step) step)
} else { } else {
if step.ImportState { if step.ImportState {
if step.Config == "" {
step.Config = testProviderConfig(c)
}
// Can optionally set step.Config in addition to // Can optionally set step.Config in addition to
// step.ImportState, to provide config for the import. // step.ImportState, to provide config for the import.
state, err = testStepImportState(opts, state, step) state, err = testStepImportState(opts, state, step)
@ -499,6 +503,18 @@ func Test(t TestT, c TestCase) {
} }
} }
// testProviderConfig takes the list of Providers in a TestCase and returns a
// config with only empty provider blocks. This is useful for Import, where no
// config is provided, but the providers must be defined.
func testProviderConfig(c TestCase) string {
var lines []string
for p := range c.Providers {
lines = append(lines, fmt.Sprintf("provider %q {}\n", p))
}
return strings.Join(lines, "")
}
// testProviderResolver is a helper to build a ResourceProviderResolver // testProviderResolver is a helper to build a ResourceProviderResolver
// with pre instantiated ResourceProviders, so that we can reset them for the // with pre instantiated ResourceProviders, so that we can reset them for the
// test, while only calling the factory function once. // test, while only calling the factory function once.