Files
opentf/config/module/testing.go
James Bardin 36eb40a432 export ModuleStorage and use it for Tree.Load
Exporting ModuleStorage allows us to explicitly pass in the storgae
location rather than extracting it out of the getter.Storage interface,
set a UI for communiating actions back to the user, and accepting a
services Disco for discovery.
2017-10-27 11:29:29 -04:00

37 lines
749 B
Go

package module
import (
"io/ioutil"
"os"
"testing"
)
// TestTree loads a module at the given path and returns the tree as well
// as a function that should be deferred to clean up resources.
func TestTree(t *testing.T, path string) (*Tree, func()) {
// Create a temporary directory for module storage
dir, err := ioutil.TempDir("", "tf")
if err != nil {
t.Fatalf("err: %s", err)
return nil, nil
}
// Load the module
mod, err := NewTreeModule("", path)
if err != nil {
t.Fatalf("err: %s", err)
return nil, nil
}
// Get the child modules
s := &ModuleStorage{StorageDir: dir, Mode: GetModeGet}
if err := mod.Load(s); err != nil {
t.Fatalf("err: %s", err)
return nil, nil
}
return mod, func() {
os.RemoveAll(dir)
}
}