| 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 := &Storage{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) |
| } |
| } |