mirror of https://github.com/databricks/cli.git
76 lines
1.9 KiB
Go
76 lines
1.9 KiB
Go
package internal
|
|
|
|
import (
|
|
"errors"
|
|
"net/http"
|
|
"os"
|
|
"path"
|
|
"path/filepath"
|
|
|
|
"github.com/databricks/cli/internal/acc"
|
|
"github.com/databricks/cli/internal/testutil"
|
|
|
|
"github.com/databricks/cli/libs/filer"
|
|
"github.com/databricks/databricks-sdk-go/apierr"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func setupLocalFiler(t testutil.TestingT) (filer.Filer, string) {
|
|
t.Log(testutil.GetEnvOrSkipTest(t, "CLOUD_ENV"))
|
|
|
|
tmp := t.TempDir()
|
|
f, err := filer.NewLocalClient(tmp)
|
|
require.NoError(t, err)
|
|
|
|
return f, path.Join(filepath.ToSlash(tmp))
|
|
}
|
|
|
|
func setupWsfsFiler(t testutil.TestingT) (filer.Filer, string) {
|
|
ctx, wt := acc.WorkspaceTest(t)
|
|
|
|
tmpdir := acc.TemporaryWorkspaceDir(wt)
|
|
f, err := filer.NewWorkspaceFilesClient(wt.W, tmpdir)
|
|
require.NoError(t, err)
|
|
|
|
// Check if we can use this API here, skip test if we cannot.
|
|
_, err = f.Read(ctx, "we_use_this_call_to_test_if_this_api_is_enabled")
|
|
var aerr *apierr.APIError
|
|
if errors.As(err, &aerr) && aerr.StatusCode == http.StatusBadRequest {
|
|
t.Skip(aerr.Message)
|
|
}
|
|
|
|
return f, tmpdir
|
|
}
|
|
|
|
func setupWsfsExtensionsFiler(t testutil.TestingT) (filer.Filer, string) {
|
|
_, wt := acc.WorkspaceTest(t)
|
|
|
|
tmpdir := acc.TemporaryWorkspaceDir(wt)
|
|
f, err := filer.NewWorkspaceFilesExtensionsClient(wt.W, tmpdir)
|
|
require.NoError(t, err)
|
|
return f, tmpdir
|
|
}
|
|
|
|
func setupDbfsFiler(t testutil.TestingT) (filer.Filer, string) {
|
|
_, wt := acc.WorkspaceTest(t)
|
|
|
|
tmpdir := acc.TemporaryDbfsDir(wt)
|
|
f, err := filer.NewDbfsClient(wt.W, tmpdir)
|
|
require.NoError(t, err)
|
|
return f, path.Join("dbfs:/", tmpdir)
|
|
}
|
|
|
|
func setupUcVolumesFiler(t testutil.TestingT) (filer.Filer, string) {
|
|
_, wt := acc.WorkspaceTest(t)
|
|
|
|
if os.Getenv("TEST_METASTORE_ID") == "" {
|
|
t.Skip("Skipping tests that require a UC Volume when metastore id is not set.")
|
|
}
|
|
|
|
tmpdir := acc.TemporaryVolume(wt)
|
|
f, err := filer.NewFilesClient(wt.W, tmpdir)
|
|
require.NoError(t, err)
|
|
|
|
return f, path.Join("dbfs:/", tmpdir)
|
|
}
|