mirror of https://github.com/databricks/cli.git
wip import-dir acc tests
This commit is contained in:
parent
dc0ff8925a
commit
2be6b85beb
|
@ -0,0 +1,81 @@
|
|||
package internal
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"io"
|
||||
"path"
|
||||
"regexp"
|
||||
"testing"
|
||||
|
||||
"github.com/databricks/cli/libs/filer"
|
||||
"github.com/databricks/databricks-sdk-go"
|
||||
"github.com/databricks/databricks-sdk-go/service/workspace"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestWorkspaceImportDir(t *testing.T) {
|
||||
t.Log(GetEnvOrSkipTest(t, "CLOUD_ENV"))
|
||||
|
||||
ctx := context.Background()
|
||||
w := databricks.Must(databricks.NewWorkspaceClient())
|
||||
tmpdir := TemporaryWorkspaceDir(t, w)
|
||||
|
||||
// run import_dir command
|
||||
RequireSuccessfulRun(t, "workspace", "import_dir", "./testdata/import_dir/default", tmpdir)
|
||||
|
||||
// assert files are uploaded
|
||||
f, err := filer.NewWorkspaceFilesClient(w, tmpdir)
|
||||
require.NoError(t, err)
|
||||
assertFileContains(t, ctx, f, "foo.txt", "hello, world")
|
||||
assertFileContains(t, ctx, f, ".gitignore", ".databricks")
|
||||
assertFileContains(t, ctx, f, "bar/apple.py", "print(1)")
|
||||
assertNotebookExists(t, ctx, w, path.Join(tmpdir, "bar/mango"))
|
||||
}
|
||||
|
||||
func TestWorkspaceImportDirOverwriteFlag(t *testing.T) {
|
||||
// t.Log(GetEnvOrSkipTest(t, "CLOUD_ENV"))
|
||||
|
||||
// ctx := context.Background()
|
||||
w := databricks.Must(databricks.NewWorkspaceClient())
|
||||
tmpdir := TemporaryWorkspaceDir(t, w)
|
||||
|
||||
// run import_dir command
|
||||
RequireSuccessfulRun(t, "workspace", "import_dir", "./testdata/import_dir/override/a", tmpdir)
|
||||
|
||||
// // assert files are uploaded
|
||||
// f, err := filer.NewWorkspaceFilesClient(w, tmpdir)
|
||||
// require.NoError(t, err)
|
||||
// assertFileContains(t, ctx, f, "bar.txt", "from directory A")
|
||||
|
||||
|
||||
// Assert another run fails with path already exists error from the server
|
||||
_, _, err := RequireErrorRun(t, "workspace", "import_dir", "./testdata/import_dir/override/b", tmpdir)
|
||||
assert.Regexp(t, regexp.MustCompile("Path (.*) already exists."), err.Error())
|
||||
|
||||
// // Succeeds with the overwrite flag
|
||||
// RequireSuccessfulRun(t, "workspace", "import_dir", "./testdata/import_dir/override/b", tmpdir, "--overwrite")
|
||||
// require.NoError(t, err)
|
||||
// assertFileContains(t, ctx, f, "bar.txt", "from directory B")
|
||||
}
|
||||
|
||||
func assertFileContains(t *testing.T, ctx context.Context, f filer.Filer, name, contents string) {
|
||||
r, err := f.Read(ctx, name)
|
||||
require.NoError(t, err)
|
||||
|
||||
var b bytes.Buffer
|
||||
_, err = io.Copy(&b, r)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Contains(t, b.String(), contents)
|
||||
}
|
||||
|
||||
func assertNotebookExists(t *testing.T, ctx context.Context, w *databricks.WorkspaceClient, path string) {
|
||||
info, err := w.Workspace.ListAll(ctx, workspace.ListWorkspaceRequest{
|
||||
Path: path,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
assert.Len(t, info, 1)
|
||||
assert.Equal(t, info[0].ObjectType, workspace.ObjectTypeNotebook)
|
||||
}
|
Loading…
Reference in New Issue