mirror of https://github.com/databricks/cli.git
97 lines
2.0 KiB
Go
97 lines
2.0 KiB
Go
|
package config
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
|
||
|
"github.com/databricks/bricks/bundle/config/resources"
|
||
|
"github.com/stretchr/testify/assert"
|
||
|
)
|
||
|
|
||
|
func TestVerifyUniqueResourceIdentifiers(t *testing.T) {
|
||
|
r := Resources{
|
||
|
Jobs: map[string]*resources.Job{
|
||
|
"foo": {
|
||
|
Paths: resources.Paths{
|
||
|
ConfigFilePath: "foo.yml",
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
Models: map[string]*resources.MlflowModel{
|
||
|
"bar": {
|
||
|
Paths: resources.Paths{
|
||
|
ConfigFilePath: "bar.yml",
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
Experiments: map[string]*resources.MlflowExperiment{
|
||
|
"foo": {
|
||
|
Paths: resources.Paths{
|
||
|
ConfigFilePath: "foo2.yml",
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
}
|
||
|
_, err := r.VerifyUniqueResourceIdentifiers()
|
||
|
assert.ErrorContains(t, err, "multiple resources named foo (job at foo.yml, mlflow_experiment at foo2.yml)")
|
||
|
}
|
||
|
|
||
|
func TestVerifySafeMerge(t *testing.T) {
|
||
|
r := Resources{
|
||
|
Jobs: map[string]*resources.Job{
|
||
|
"foo": {
|
||
|
Paths: resources.Paths{
|
||
|
ConfigFilePath: "foo.yml",
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
Models: map[string]*resources.MlflowModel{
|
||
|
"bar": {
|
||
|
Paths: resources.Paths{
|
||
|
ConfigFilePath: "bar.yml",
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
}
|
||
|
other := Resources{
|
||
|
Pipelines: map[string]*resources.Pipeline{
|
||
|
"foo": {
|
||
|
Paths: resources.Paths{
|
||
|
ConfigFilePath: "foo2.yml",
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
}
|
||
|
err := r.VerifySafeMerge(&other)
|
||
|
assert.ErrorContains(t, err, "multiple resources named foo (job at foo.yml, pipeline at foo2.yml)")
|
||
|
}
|
||
|
|
||
|
func TestVerifySafeMergeForSameResourceType(t *testing.T) {
|
||
|
r := Resources{
|
||
|
Jobs: map[string]*resources.Job{
|
||
|
"foo": {
|
||
|
Paths: resources.Paths{
|
||
|
ConfigFilePath: "foo.yml",
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
Models: map[string]*resources.MlflowModel{
|
||
|
"bar": {
|
||
|
Paths: resources.Paths{
|
||
|
ConfigFilePath: "bar.yml",
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
}
|
||
|
other := Resources{
|
||
|
Jobs: map[string]*resources.Job{
|
||
|
"foo": {
|
||
|
Paths: resources.Paths{
|
||
|
ConfigFilePath: "foo2.yml",
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
}
|
||
|
err := r.VerifySafeMerge(&other)
|
||
|
assert.ErrorContains(t, err, "multiple resources named foo (job at foo.yml, job at foo2.yml)")
|
||
|
}
|