mirror of https://github.com/databricks/cli.git
Compare commits
3 Commits
790bdd2fc5
...
c9ab0208b2
Author | SHA1 | Date |
---|---|---|
Fabian Jakobs | c9ab0208b2 | |
shreyas-goenka | cc112961ce | |
Andrew Nester | 0753dfe2f4 |
|
@ -112,8 +112,8 @@ func TestAccFsMkdirWhenFileExistsAtPath(t *testing.T) {
|
|||
// assert mkdir fails
|
||||
_, _, err = RequireErrorRun(t, "fs", "mkdir", path.Join(tmpDir, "hello"))
|
||||
|
||||
// Different cloud providers return different errors.
|
||||
regex := regexp.MustCompile(`(^|: )Path is a file: .*$|(^|: )Cannot create directory .* because .* is an existing file\.$|(^|: )mkdirs\(hadoopPath: .*, permission: rwxrwxrwx\): failed$`)
|
||||
// Different cloud providers or cloud configurations return different errors.
|
||||
regex := regexp.MustCompile(`(^|: )Path is a file: .*$|(^|: )Cannot create directory .* because .* is an existing file\.$|(^|: )mkdirs\(hadoopPath: .*, permission: rwxrwxrwx\): failed$|(^|: )"The specified path already exists.".*$`)
|
||||
assert.Regexp(t, regex, err.Error())
|
||||
})
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/databricks/cli/cmd/root"
|
||||
"github.com/databricks/cli/internal/acc"
|
||||
"github.com/databricks/cli/libs/flags"
|
||||
|
||||
"github.com/databricks/cli/cmd"
|
||||
|
@ -591,13 +592,10 @@ func setupWsfsExtensionsFiler(t *testing.T) (filer.Filer, string) {
|
|||
}
|
||||
|
||||
func setupDbfsFiler(t *testing.T) (filer.Filer, string) {
|
||||
t.Log(GetEnvOrSkipTest(t, "CLOUD_ENV"))
|
||||
_, wt := acc.WorkspaceTest(t)
|
||||
|
||||
w, err := databricks.NewWorkspaceClient()
|
||||
require.NoError(t, err)
|
||||
|
||||
tmpDir := TemporaryDbfsDir(t, w)
|
||||
f, err := filer.NewDbfsClient(w, tmpDir)
|
||||
tmpDir := TemporaryDbfsDir(t, wt.W)
|
||||
f, err := filer.NewDbfsClient(wt.W, tmpDir)
|
||||
require.NoError(t, err)
|
||||
|
||||
return f, path.Join("dbfs:/", tmpDir)
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
"encoding/json"
|
||||
"fmt"
|
||||
"os"
|
||||
"reflect"
|
||||
|
||||
"github.com/databricks/cli/libs/diag"
|
||||
"github.com/databricks/cli/libs/dyn/convert"
|
||||
|
@ -63,11 +64,24 @@ func (j *JsonFlag) Unmarshal(v any) diag.Diagnostics {
|
|||
return diags.Extend(diag.FromErr(err))
|
||||
}
|
||||
|
||||
// Finally unmarshal the normalized data to the output.
|
||||
// It will fill in the ForceSendFields field if the struct contains it.
|
||||
err = marshal.Unmarshal(data, v)
|
||||
if err != nil {
|
||||
return diags.Extend(diag.FromErr(err))
|
||||
kind := reflect.ValueOf(v).Kind()
|
||||
if kind == reflect.Ptr {
|
||||
kind = reflect.ValueOf(v).Elem().Kind()
|
||||
}
|
||||
|
||||
if kind == reflect.Struct {
|
||||
// Finally unmarshal the normalized data to the output.
|
||||
// It will fill in the ForceSendFields field if the struct contains it.
|
||||
err = marshal.Unmarshal(data, v)
|
||||
if err != nil {
|
||||
return diags.Extend(diag.FromErr(err))
|
||||
}
|
||||
} else {
|
||||
// If the output is not a struct, just unmarshal the data to the output.
|
||||
err = json.Unmarshal(data, v)
|
||||
if err != nil {
|
||||
return diags.Extend(diag.FromErr(err))
|
||||
}
|
||||
}
|
||||
|
||||
return diags
|
||||
|
|
|
@ -13,10 +13,6 @@ import (
|
|||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
type requestType struct {
|
||||
Foo string `json:"foo"`
|
||||
}
|
||||
|
||||
func TestJsonFlagEmpty(t *testing.T) {
|
||||
var body JsonFlag
|
||||
|
||||
|
@ -35,13 +31,13 @@ func TestJsonFlagInline(t *testing.T) {
|
|||
err := body.Set(`{"foo": "bar"}`)
|
||||
assert.NoError(t, err)
|
||||
|
||||
var request requestType
|
||||
var request any
|
||||
diags := body.Unmarshal(&request)
|
||||
assert.NoError(t, diags.Error())
|
||||
assert.Empty(t, diags)
|
||||
|
||||
assert.Equal(t, "JSON (14 bytes)", body.String())
|
||||
assert.Equal(t, requestType{"bar"}, request)
|
||||
assert.Equal(t, map[string]any{"foo": "bar"}, request)
|
||||
}
|
||||
|
||||
func TestJsonFlagError(t *testing.T) {
|
||||
|
@ -50,7 +46,7 @@ func TestJsonFlagError(t *testing.T) {
|
|||
err := body.Set(`{"foo":`)
|
||||
assert.NoError(t, err)
|
||||
|
||||
var request requestType
|
||||
var request any
|
||||
diags := body.Unmarshal(&request)
|
||||
assert.EqualError(t, diags.Error(), "error decoding JSON at (inline):1:8: unexpected end of JSON input")
|
||||
assert.Equal(t, "JSON (7 bytes)", body.String())
|
||||
|
@ -58,7 +54,7 @@ func TestJsonFlagError(t *testing.T) {
|
|||
|
||||
func TestJsonFlagFile(t *testing.T) {
|
||||
var body JsonFlag
|
||||
var request requestType
|
||||
var request any
|
||||
|
||||
var fpath string
|
||||
var payload = []byte(`{"foo": "bar"}`)
|
||||
|
@ -78,7 +74,7 @@ func TestJsonFlagFile(t *testing.T) {
|
|||
assert.NoError(t, diags.Error())
|
||||
assert.Empty(t, diags)
|
||||
|
||||
assert.Equal(t, requestType{"bar"}, request)
|
||||
assert.Equal(t, map[string]any{"foo": "bar"}, request)
|
||||
}
|
||||
|
||||
const jsonData = `
|
||||
|
|
Loading…
Reference in New Issue