mirror of
https://github.com/opentffoundation/opentf.git
synced 2026-03-12 07:01:03 -04:00
Module detection currently requires calling the registry to determine the subdirectory. Since we're not directly accessing the subdirectory through FolderStorage, and now handling it within terraform so modules can reference sibling paths, we need to call out to the registry every time we load a configuration to verify the subdirectory for the module, which is returned during the Detect. Record the subdirectories for each module in the top-level of the FolderStorage path for retrieval during Tree.Load. This lets us bypass Detection altogether, modules can be loaded without redetecting.
49 lines
804 B
Go
49 lines
804 B
Go
package module
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"log"
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
"github.com/hashicorp/go-getter"
|
|
"github.com/hashicorp/terraform/config"
|
|
)
|
|
|
|
func init() {
|
|
if os.Getenv("TF_LOG") == "" {
|
|
log.SetOutput(ioutil.Discard)
|
|
}
|
|
}
|
|
|
|
const fixtureDir = "./test-fixtures"
|
|
|
|
func tempDir(t *testing.T) string {
|
|
t.Helper()
|
|
dir, err := ioutil.TempDir("", "tf")
|
|
if err != nil {
|
|
t.Fatalf("err: %s", err)
|
|
}
|
|
if err := os.RemoveAll(dir); err != nil {
|
|
t.Fatalf("err: %s", err)
|
|
}
|
|
|
|
return dir
|
|
}
|
|
|
|
func testConfig(t *testing.T, n string) *config.Config {
|
|
t.Helper()
|
|
c, err := config.LoadDir(filepath.Join(fixtureDir, n))
|
|
if err != nil {
|
|
t.Fatalf("err: %s", err)
|
|
}
|
|
|
|
return c
|
|
}
|
|
|
|
func testStorage(t *testing.T) getter.Storage {
|
|
t.Helper()
|
|
return &getter.FolderStorage{StorageDir: tempDir(t)}
|
|
}
|