39 lines
785 B
Go
39 lines
785 B
Go
package module
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/hashicorp/go-getter"
|
|
)
|
|
|
|
// 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 := &getter.FolderStorage{StorageDir: dir}
|
|
if err := mod.Load(s, GetModeGet); err != nil {
|
|
t.Fatalf("err: %s", err)
|
|
return nil, nil
|
|
}
|
|
|
|
return mod, func() {
|
|
os.RemoveAll(dir)
|
|
}
|
|
}
|