mirror of https://github.com/databricks/cli.git
59 lines
1.7 KiB
Go
59 lines
1.7 KiB
Go
package template
|
|
|
|
import (
|
|
"context"
|
|
"runtime"
|
|
"testing"
|
|
|
|
"github.com/databricks/cli/cmd/root"
|
|
"github.com/databricks/cli/libs/dbr"
|
|
"github.com/databricks/cli/libs/filer"
|
|
"github.com/databricks/databricks-sdk-go"
|
|
workspaceConfig "github.com/databricks/databricks-sdk-go/config"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestDefaultWriterConfigure(t *testing.T) {
|
|
// Test on local file system.
|
|
w := &defaultWriter{}
|
|
err := w.Configure(context.Background(), "/foo/bar", "/out/abc")
|
|
assert.NoError(t, err)
|
|
|
|
assert.Equal(t, "/foo/bar", w.configPath)
|
|
assert.IsType(t, &filer.LocalClient{}, w.outputFiler)
|
|
}
|
|
|
|
func TestDefaultWriterConfigureOnDBR(t *testing.T) {
|
|
// This test is not valid on windows because a DBR image is always based on
|
|
// Linux.
|
|
if runtime.GOOS == "windows" {
|
|
t.Skip("Skipping test on Windows")
|
|
}
|
|
|
|
ctx := dbr.MockRuntime(context.Background(), true)
|
|
ctx = root.SetWorkspaceClient(ctx, &databricks.WorkspaceClient{
|
|
Config: &workspaceConfig.Config{Host: "https://myhost.com"},
|
|
})
|
|
w := &defaultWriter{}
|
|
err := w.Configure(ctx, "/foo/bar", "/Workspace/out/abc")
|
|
assert.NoError(t, err)
|
|
|
|
assert.Equal(t, "/foo/bar", w.configPath)
|
|
assert.IsType(t, &filer.WorkspaceFilesExtensionsClient{}, w.outputFiler)
|
|
}
|
|
|
|
func TestMaterializeForNonTemplateDirectory(t *testing.T) {
|
|
tmpDir1 := t.TempDir()
|
|
tmpDir2 := t.TempDir()
|
|
ctx := context.Background()
|
|
|
|
w := &defaultWriter{}
|
|
err := w.Configure(ctx, "/foo/bar", tmpDir1)
|
|
require.NoError(t, err)
|
|
|
|
// Try to materialize a non-template directory.
|
|
err = w.Materialize(ctx, &localReader{path: tmpDir2})
|
|
assert.EqualError(t, err, "not a bundle template: expected to find a template schema file at databricks_template_schema.json")
|
|
}
|