mirror of https://github.com/databricks/cli.git
77 lines
3.8 KiB
Go
77 lines
3.8 KiB
Go
package permissions_test
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/databricks/cli/bundle/config/resources"
|
|
"github.com/databricks/cli/bundle/permissions"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestPermissionsReportPermissionDeniedWithGroup(t *testing.T) {
|
|
b := mockBundle([]resources.Permission{
|
|
{Level: "CAN_MANAGE", GroupName: "testgroup"},
|
|
})
|
|
|
|
diags := permissions.ReportPossiblePermissionDenied(context.Background(), b, "testpath")
|
|
expected := "EPERM3: unable to deploy to testpath as testuser@databricks.com. Cannot apply local deployment permissions.\n" +
|
|
"For assistance, contact the owners of this project.\n" +
|
|
"They can redeploy the project to apply the latest set of permissions.\n" +
|
|
"Please refer to https://docs.databricks.com/dev-tools/bundles/permissions.html for more on managing permissions."
|
|
require.ErrorContains(t, diags.Error(), expected)
|
|
}
|
|
|
|
func TestPermissionsReportPermissionDeniedWithOtherGroup(t *testing.T) {
|
|
b := mockBundle([]resources.Permission{
|
|
{Level: "CAN_MANAGE", GroupName: "othergroup"},
|
|
})
|
|
|
|
diags := permissions.ReportPossiblePermissionDenied(context.Background(), b, "testpath")
|
|
expected := "EPERM1: unable to deploy to testpath as testuser@databricks.com.\n" +
|
|
"Please make sure the current user or one of their groups is listed under the permissions of this bundle.\n" +
|
|
"For assistance, users or groups with appropriate permissions may include: othergroup.\n" +
|
|
"They may need to redeploy the bundle to apply the new permissions.\n" +
|
|
"Please refer to https://docs.databricks.com/dev-tools/bundles/permissions.html for more on managing permissions."
|
|
require.ErrorContains(t, diags.Error(), expected)
|
|
}
|
|
|
|
func TestPermissionsReportPermissionDeniedWithoutPermission(t *testing.T) {
|
|
b := mockBundle([]resources.Permission{
|
|
{Level: "CAN_VIEW", UserName: "testuser@databricks.com"},
|
|
})
|
|
|
|
diags := permissions.ReportPossiblePermissionDenied(context.Background(), b, "testpath")
|
|
expected := "EPERM1: unable to deploy to testpath as testuser@databricks.com.\n" +
|
|
"Please make sure the current user or one of their groups is listed under the permissions of this bundle.\n" +
|
|
"For assistance, contact the owners of this project.\n" +
|
|
"They may need to redeploy the bundle to apply the new permissions.\n" +
|
|
"Please refer to https://docs.databricks.com/dev-tools/bundles/permissions.html for more on managing permissions."
|
|
require.ErrorContains(t, diags.Error(), expected)
|
|
}
|
|
|
|
func TestPermissionsReportPermissionDeniedNilPermission(t *testing.T) {
|
|
b := mockBundle(nil)
|
|
|
|
diags := permissions.ReportPossiblePermissionDenied(context.Background(), b, "testpath")
|
|
expected := "EPERM1: unable to deploy to testpath as testuser@databricks.com.\n" +
|
|
"Please make sure the current user or one of their groups is listed under the permissions of this bundle.\n" +
|
|
"For assistance, contact the owners of this project.\n" +
|
|
"They may need to redeploy the bundle to apply the new permissions.\n" +
|
|
"Please refer to https://docs.databricks.com/dev-tools/bundles/permissions.html for more on managing permissions"
|
|
require.ErrorContains(t, diags.Error(), expected)
|
|
}
|
|
|
|
func TestPermissionsReportFindOtherOwners(t *testing.T) {
|
|
b := mockBundle([]resources.Permission{
|
|
{Level: "CAN_MANAGE", GroupName: "testgroup"},
|
|
{Level: "CAN_MANAGE", UserName: "alice@databricks.com"},
|
|
})
|
|
|
|
diags := permissions.ReportPossiblePermissionDenied(context.Background(), b, "testpath")
|
|
require.ErrorContains(t, diags.Error(), "EPERM3: unable to deploy to testpath as testuser@databricks.com. Cannot apply local deployment permissions.\n"+
|
|
"For assistance, users or groups with appropriate permissions may include: alice@databricks.com.\n"+
|
|
"They can redeploy the project to apply the latest set of permissions.\n"+
|
|
"Please refer to https://docs.databricks.com/dev-tools/bundles/permissions.html for more on managing permissions.")
|
|
}
|