github.com/databricks/cli@v0.203.0/internal/fs_cat_test.go (about) 1 package internal 2 3 import ( 4 "context" 5 "io/fs" 6 "path" 7 "strings" 8 "testing" 9 10 "github.com/databricks/cli/libs/filer" 11 "github.com/databricks/databricks-sdk-go" 12 "github.com/stretchr/testify/assert" 13 "github.com/stretchr/testify/require" 14 ) 15 16 func TestAccFsCatForDbfs(t *testing.T) { 17 t.Log(GetEnvOrSkipTest(t, "CLOUD_ENV")) 18 19 ctx := context.Background() 20 w, err := databricks.NewWorkspaceClient() 21 require.NoError(t, err) 22 23 tmpDir := temporaryDbfsDir(t, w) 24 25 f, err := filer.NewDbfsClient(w, tmpDir) 26 require.NoError(t, err) 27 28 err = f.Write(ctx, "a/hello.txt", strings.NewReader("abc"), filer.CreateParentDirectories) 29 require.NoError(t, err) 30 31 stdout, stderr := RequireSuccessfulRun(t, "fs", "cat", "dbfs:"+path.Join(tmpDir, "a", "hello.txt")) 32 assert.Equal(t, "", stderr.String()) 33 assert.Equal(t, "abc", stdout.String()) 34 } 35 36 func TestAccFsCatForDbfsOnNonExistentFile(t *testing.T) { 37 t.Log(GetEnvOrSkipTest(t, "CLOUD_ENV")) 38 39 _, _, err := RequireErrorRun(t, "fs", "cat", "dbfs:/non-existent-file") 40 assert.ErrorIs(t, err, fs.ErrNotExist) 41 } 42 43 func TestAccFsCatForDbfsInvalidScheme(t *testing.T) { 44 t.Log(GetEnvOrSkipTest(t, "CLOUD_ENV")) 45 46 _, _, err := RequireErrorRun(t, "fs", "cat", "dab:/non-existent-file") 47 assert.ErrorContains(t, err, "invalid scheme: dab") 48 } 49 50 func TestAccFsCatDoesNotSupportOutputModeJson(t *testing.T) { 51 t.Log(GetEnvOrSkipTest(t, "CLOUD_ENV")) 52 53 ctx := context.Background() 54 w, err := databricks.NewWorkspaceClient() 55 require.NoError(t, err) 56 57 tmpDir := temporaryDbfsDir(t, w) 58 59 f, err := filer.NewDbfsClient(w, tmpDir) 60 require.NoError(t, err) 61 62 err = f.Write(ctx, "hello.txt", strings.NewReader("abc")) 63 require.NoError(t, err) 64 65 _, _, err = RequireErrorRun(t, "fs", "cat", "dbfs:"+path.Join(tmpDir, "hello.txt"), "--output=json") 66 assert.ErrorContains(t, err, "json output not supported") 67 } 68 69 // TODO: Add test asserting an error when cat is called on an directory. Need this to be 70 // fixed in the SDK first (https://github.com/databricks/databricks-sdk-go/issues/414)