mirror of https://github.com/databricks/cli.git
77 lines
1.6 KiB
Go
77 lines
1.6 KiB
Go
package resources
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/databricks/databricks-sdk-go/service/pipelines"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestPipelineMergeClusters(t *testing.T) {
|
|
p := &Pipeline{
|
|
PipelineSpec: &pipelines.PipelineSpec{
|
|
Clusters: []pipelines.PipelineCluster{
|
|
{
|
|
NodeTypeId: "i3.xlarge",
|
|
NumWorkers: 2,
|
|
PolicyId: "1234",
|
|
},
|
|
{
|
|
Label: "maintenance",
|
|
NodeTypeId: "i3.2xlarge",
|
|
},
|
|
{
|
|
NodeTypeId: "i3.2xlarge",
|
|
NumWorkers: 4,
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
err := p.MergeClusters()
|
|
require.NoError(t, err)
|
|
|
|
assert.Len(t, p.Clusters, 2)
|
|
assert.Equal(t, "default", p.Clusters[0].Label)
|
|
assert.Equal(t, "maintenance", p.Clusters[1].Label)
|
|
|
|
// The default cluster was merged with a subsequent one.
|
|
pc0 := p.Clusters[0]
|
|
assert.Equal(t, "i3.2xlarge", pc0.NodeTypeId)
|
|
assert.Equal(t, 4, pc0.NumWorkers)
|
|
assert.Equal(t, "1234", pc0.PolicyId)
|
|
|
|
// The maintenance cluster was left untouched.
|
|
pc1 := p.Clusters[1]
|
|
assert.Equal(t, "i3.2xlarge", pc1.NodeTypeId)
|
|
}
|
|
|
|
func TestPipelineMergeClustersCaseInsensitive(t *testing.T) {
|
|
p := &Pipeline{
|
|
PipelineSpec: &pipelines.PipelineSpec{
|
|
Clusters: []pipelines.PipelineCluster{
|
|
{
|
|
Label: "default",
|
|
NumWorkers: 2,
|
|
},
|
|
{
|
|
Label: "DEFAULT",
|
|
NumWorkers: 4,
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
err := p.MergeClusters()
|
|
require.NoError(t, err)
|
|
|
|
assert.Len(t, p.Clusters, 1)
|
|
|
|
// The default cluster was merged with a subsequent one.
|
|
pc0 := p.Clusters[0]
|
|
assert.Equal(t, "default", strings.ToLower(pc0.Label))
|
|
assert.Equal(t, 4, pc0.NumWorkers)
|
|
}
|