Skip to content

Commit f9d4e38

Browse files
authored
Add integration test coverage for delta sharing parameters (#2991)
1 parent e11e738 commit f9d4e38

File tree

1 file changed

+68
-51
lines changed

1 file changed

+68
-51
lines changed
Lines changed: 68 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,73 +1,90 @@
11
package acceptance
22

33
import (
4+
"encoding/json"
5+
"fmt"
46
"os"
7+
"strings"
58
"testing"
9+
10+
"github.com/stretchr/testify/require"
611
)
712

8-
func TestUcAccMetastore(t *testing.T) {
9-
cloudEnv := os.Getenv("CLOUD_ENV")
13+
func getStorageRoot(cloudEnv string) string {
1014
switch cloudEnv {
1115
case "ucacct":
12-
unityAccountLevel(t, step{
13-
Template: `resource "databricks_metastore" "this" {
14-
name = "{var.RANDOM}"
15-
storage_root = "s3://{env.TEST_BUCKET}/test{var.RANDOM}"
16-
region = "us-east-1"
17-
force_destroy = true
18-
}`,
19-
})
16+
return "s3://{env.TEST_BUCKET}/test{var.RANDOM}"
2017
case "azure-ucacct":
21-
unityAccountLevel(t, step{
22-
Template: `resource "databricks_metastore" "this" {
23-
name = "{var.RANDOM}"
24-
storage_root = "abfss://{var.RANDOM}@{var.RANDOM}.dfs.core.windows.net/"
25-
region = "eastus"
26-
force_destroy = true
27-
}`,
28-
})
18+
return "abfss://{var.RANDOM}@{var.RANDOM}/"
2919
case "gcp-accounts":
30-
unityAccountLevel(t, step{
31-
Template: `resource "databricks_metastore" "this" {
32-
name = "{var.RANDOM}"
33-
storage_root = "gs://{var.RANDOM}/metastore"
34-
region = "us-east1"
35-
force_destroy = true
36-
}`,
37-
})
20+
return "gs://{var.RANDOM}/metastore"
3821
default:
39-
t.Skipf("not available on %s", cloudEnv)
22+
return ""
4023
}
4124
}
4225

43-
func TestUcAccRootlessMetastore(t *testing.T) {
44-
cloudEnv := os.Getenv("CLOUD_ENV")
26+
func getRegion(cloudEnv string) string {
4527
switch cloudEnv {
4628
case "ucacct":
47-
unityAccountLevel(t, step{
48-
Template: `resource "databricks_metastore" "this" {
49-
name = "{var.RANDOM}"
50-
region = "us-east-1"
51-
force_destroy = true
52-
}`,
53-
})
29+
return "us-east-1"
5430
case "azure-ucacct":
55-
unityAccountLevel(t, step{
56-
Template: `resource "databricks_metastore" "this" {
57-
name = "{var.RANDOM}"
58-
region = "eastus"
59-
force_destroy = true
60-
}`,
61-
})
31+
return "eastus"
6232
case "gcp-accounts":
63-
unityAccountLevel(t, step{
64-
Template: `resource "databricks_metastore" "this" {
65-
name = "{var.RANDOM}"
66-
region = "us-east1"
67-
force_destroy = true
68-
}`,
69-
})
33+
return "us-east1"
7034
default:
71-
t.Skipf("not available on %s", cloudEnv)
35+
return ""
36+
}
37+
}
38+
39+
func TestUcAccRootlessMetastore(t *testing.T) {
40+
loadDebugEnvIfRunsFromIDE(t, "ucacct")
41+
runMetastoreTest(t, map[string]any{
42+
"region": getRegion(os.Getenv("CLOUD_ENV")),
43+
})
44+
}
45+
46+
func TestUcAccMetastore(t *testing.T) {
47+
loadDebugEnvIfRunsFromIDE(t, "ucacct")
48+
runMetastoreTest(t, map[string]any{
49+
"storage_root": getStorageRoot(os.Getenv("CLOUD_ENV")),
50+
"region": getRegion(os.Getenv("CLOUD_ENV")),
51+
})
52+
}
53+
54+
func TestUcAccMetastoreDeltaSharing(t *testing.T) {
55+
loadDebugEnvIfRunsFromIDE(t, "ucacct")
56+
runMetastoreTest(t, map[string]any{
57+
"storage_root": getStorageRoot(os.Getenv("CLOUD_ENV")),
58+
"region": getRegion(os.Getenv("CLOUD_ENV")),
59+
"delta_sharing_scope": "INTERNAL",
60+
"delta_sharing_recipient_token_lifetime_in_seconds": 3600,
61+
"delta_sharing_organization_name": "databricks-tf-provider-test",
62+
})
63+
}
64+
65+
func TestUcAccMetastoreDeltaSharingInfiniteLifetime(t *testing.T) {
66+
loadDebugEnvIfRunsFromIDE(t, "ucacct")
67+
runMetastoreTest(t, map[string]any{
68+
"storage_root": getStorageRoot(os.Getenv("CLOUD_ENV")),
69+
"region": getRegion(os.Getenv("CLOUD_ENV")),
70+
"delta_sharing_scope": "INTERNAL",
71+
"delta_sharing_recipient_token_lifetime_in_seconds": 0,
72+
})
73+
}
74+
75+
func runMetastoreTest(t *testing.T, extraAttributes map[string]any) {
76+
params := make([]string, len(extraAttributes))
77+
for k, v := range extraAttributes {
78+
jsonValue, err := json.Marshal(v)
79+
require.NoError(t, err)
80+
params = append(params, k+" = "+string(jsonValue))
7281
}
82+
template := strings.Join(params, "\n\t\t\t")
83+
unityAccountLevel(t, step{
84+
Template: fmt.Sprintf(`resource "databricks_metastore" "this" {
85+
name = "{var.RANDOM}"
86+
force_destroy = true
87+
%s
88+
}`, template),
89+
})
7390
}

0 commit comments

Comments
 (0)