Skip to content

Commit c3db467

Browse files
authored
Convert run_as unit tests to acceptance tests (#3317)
## Why While working on properly translating null fields in #3230, I noticed these test fail. Converting them to acceptance shows what's the difference at user level.
1 parent 79f2dda commit c3db467

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+682
-339
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
other_resources () {
2+
title "Other resources are not affected"
3+
trace jq .resources.jobs.job_three.run_as < tmp
4+
trace jq .resources.experiments < tmp
5+
trace jq .resources.models < tmp
6+
}
7+
8+
trace $CLI bundle validate -o json > tmp
9+
trace jq .run_as < tmp
10+
11+
title "Jobs one and two run_as is updated to bundle-level setting (service_principal_name)"
12+
trace jq .resources.jobs.job_one.run_as < tmp
13+
trace jq .resources.jobs.job_two.run_as < tmp
14+
15+
other_resources
16+
17+
trace $CLI bundle validate -o json -t development > tmp
18+
trace jq .run_as < tmp
19+
20+
title "Jobs one and two run_as is updated to target-level setting (user_name)"
21+
trace jq .resources.jobs.job_one.run_as < tmp
22+
trace jq .resources.jobs.job_two.run_as < tmp
23+
24+
other_resources
25+
26+
rm tmp

bundle/tests/run_as/allowed/databricks.yml renamed to acceptance/bundle/run_as/allowed/databricks.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ run_as:
55
service_principal_name: "my_service_principal"
66

77
targets:
8+
default:
9+
default: true
810
development:
911
mode: development
1012
run_as:
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Local = true
2+
Cloud = false
3+
4+
[EnvMatrix]
5+
DATABRICKS_CLI_DEPLOYMENT = ["terraform", "direct-exp"]
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
2+
>>> [CLI] bundle validate -o json
3+
Warning: required field "catalog_name" is not set
4+
at resources.registered_models.model_two
5+
in databricks.yml:50:7
6+
7+
Warning: required field "schema_name" is not set
8+
at resources.registered_models.model_two
9+
in databricks.yml:50:7
10+
11+
12+
>>> jq .run_as
13+
{
14+
"service_principal_name": "my_service_principal"
15+
}
16+
17+
=== Jobs one and two run_as is updated to bundle-level setting (service_principal_name)
18+
>>> jq .resources.jobs.job_one.run_as
19+
{
20+
"service_principal_name": "my_service_principal"
21+
}
22+
23+
>>> jq .resources.jobs.job_two.run_as
24+
{
25+
"service_principal_name": "my_service_principal"
26+
}
27+
28+
=== Other resources are not affected
29+
>>> jq .resources.jobs.job_three.run_as
30+
{
31+
"service_principal_name": "my_service_principal_for_job"
32+
}
33+
34+
>>> jq .resources.experiments
35+
{
36+
"experiment_one": {
37+
"name": "experiment_one",
38+
"permissions": []
39+
}
40+
}
41+
42+
>>> jq .resources.models
43+
{
44+
"model_one": {
45+
"name": "skynet",
46+
"permissions": []
47+
}
48+
}
49+
50+
>>> [CLI] bundle validate -o json -t development
51+
Warning: required field "catalog_name" is not set
52+
at resources.registered_models.model_two
53+
in databricks.yml:50:7
54+
55+
Warning: required field "schema_name" is not set
56+
at resources.registered_models.model_two
57+
in databricks.yml:50:7
58+
59+
60+
>>> jq .run_as
61+
{
62+
"user_name": "my_user_name"
63+
}
64+
65+
=== Jobs one and two run_as is updated to target-level setting (user_name)
66+
>>> jq .resources.jobs.job_one.run_as
67+
{
68+
"user_name": "my_user_name"
69+
}
70+
71+
>>> jq .resources.jobs.job_two.run_as
72+
{
73+
"user_name": "my_user_name"
74+
}
75+
76+
=== Other resources are not affected
77+
>>> jq .resources.jobs.job_three.run_as
78+
{
79+
"service_principal_name": "my_service_principal_for_job"
80+
}
81+
82+
>>> jq .resources.experiments
83+
{
84+
"experiment_one": {
85+
"name": "[dev [USERNAME]] experiment_one",
86+
"permissions": [],
87+
"tags": [
88+
{
89+
"key": "dev",
90+
"value": "[USERNAME]"
91+
}
92+
]
93+
}
94+
}
95+
96+
>>> jq .resources.models
97+
{
98+
"model_one": {
99+
"name": "[dev [USERNAME]] skynet",
100+
"permissions": [],
101+
"tags": [
102+
{
103+
"key": "dev",
104+
"value": "[USERNAME]"
105+
}
106+
]
107+
}
108+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
cp $TESTDIR/../{databricks.yml,test.py} .
2+
source $TESTDIR/../_script
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Local = true
2+
Cloud = false
3+
4+
[EnvMatrix]
5+
DATABRICKS_CLI_DEPLOYMENT = ["terraform", "direct-exp"]
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
2+
>>> [CLI] bundle validate -o json
3+
Warning: required field "catalog_name" is not set
4+
at resources.registered_models.model_two
5+
in databricks.yml:50:7
6+
7+
Warning: required field "schema_name" is not set
8+
at resources.registered_models.model_two
9+
in databricks.yml:50:7
10+
11+
12+
>>> jq .run_as
13+
{
14+
"service_principal_name": "my_service_principal"
15+
}
16+
17+
=== Jobs one and two run_as is updated to bundle-level setting (service_principal_name)
18+
>>> jq .resources.jobs.job_one.run_as
19+
{
20+
"service_principal_name": "my_service_principal"
21+
}
22+
23+
>>> jq .resources.jobs.job_two.run_as
24+
{
25+
"service_principal_name": "my_service_principal"
26+
}
27+
28+
=== Other resources are not affected
29+
>>> jq .resources.jobs.job_three.run_as
30+
{
31+
"service_principal_name": "my_service_principal_for_job"
32+
}
33+
34+
>>> jq .resources.experiments
35+
{
36+
"experiment_one": {
37+
"name": "experiment_one",
38+
"permissions": []
39+
}
40+
}
41+
42+
>>> jq .resources.models
43+
{
44+
"model_one": {
45+
"name": "skynet",
46+
"permissions": []
47+
}
48+
}
49+
50+
>>> [CLI] bundle validate -o json -t development
51+
Warning: required field "catalog_name" is not set
52+
at resources.registered_models.model_two
53+
in databricks.yml:50:7
54+
55+
Warning: required field "schema_name" is not set
56+
at resources.registered_models.model_two
57+
in databricks.yml:50:7
58+
59+
60+
>>> jq .run_as
61+
{
62+
"user_name": "my_user_name"
63+
}
64+
65+
=== Jobs one and two run_as is updated to target-level setting (user_name)
66+
>>> jq .resources.jobs.job_one.run_as
67+
{
68+
"user_name": "my_user_name"
69+
}
70+
71+
>>> jq .resources.jobs.job_two.run_as
72+
{
73+
"user_name": "my_user_name"
74+
}
75+
76+
=== Other resources are not affected
77+
>>> jq .resources.jobs.job_three.run_as
78+
{
79+
"service_principal_name": "my_service_principal_for_job"
80+
}
81+
82+
>>> jq .resources.experiments
83+
{
84+
"experiment_one": {
85+
"name": "[dev [USERNAME]] experiment_one",
86+
"permissions": [],
87+
"tags": [
88+
{
89+
"key": "dev",
90+
"value": "[USERNAME]"
91+
}
92+
]
93+
}
94+
}
95+
96+
>>> jq .resources.models
97+
{
98+
"model_one": {
99+
"name": "[dev [USERNAME]] skynet",
100+
"permissions": [],
101+
"tags": [
102+
{
103+
"key": "dev",
104+
"value": "[USERNAME]"
105+
}
106+
]
107+
}
108+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
cp $TESTDIR/../{databricks.yml,test.py} .
2+
source $TESTDIR/../_script
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
IsServicePrincipal = true
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Databricks notebook source

0 commit comments

Comments
 (0)