Skip to content

Commit 859e0c0

Browse files
Changes after review
1 parent b13d87b commit 859e0c0

11 files changed

+100
-53
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package helpers
2+
3+
import (
4+
"fmt"
5+
"testing"
6+
7+
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/acceptance/testenvs"
8+
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/sdk"
9+
)
10+
11+
type SnowflakeDefaultsClient struct {
12+
context *TestClientContext
13+
ids *IdsGenerator
14+
}
15+
16+
func NewSnowflakeDefaultsClient(context *TestClientContext) *SnowflakeDefaultsClient {
17+
return &SnowflakeDefaultsClient{
18+
context: context,
19+
}
20+
}
21+
22+
func (c *SnowflakeDefaultsClient) EnabledForSnowflakeOauthSecurityIntegration(t *testing.T) bool {
23+
t.Helper()
24+
if c.context.snowflakeEnvironment == testenvs.SnowflakeNonProdEnvironment {
25+
return true
26+
}
27+
return false
28+
}
29+
30+
func (c *SnowflakeDefaultsClient) StageIdentifierOutputFormatForStreamOnDirectoryTable(id sdk.SchemaObjectIdentifier) string {
31+
if c.context.snowflakeEnvironment == testenvs.SnowflakeNonProdEnvironment {
32+
return fmt.Sprintf(`"%s"."%s".%s`, id.DatabaseName(), id.SchemaName(), id.Name())
33+
}
34+
return id.Name()
35+
}

pkg/acceptance/helpers/test_client.go

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package helpers
22

33
import (
4+
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/acceptance/testenvs"
45
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/sdk"
56
)
67

@@ -73,6 +74,7 @@ type TestClient struct {
7374
Share *ShareClient
7475
SemanticView *SemanticViewClient
7576
Snapshot *SnapshotClient
77+
SnowflakeDefaults *SnowflakeDefaultsClient
7678
Stage *StageClient
7779
StorageIntegration *StorageIntegrationClient
7880
Stream *StreamClient
@@ -85,14 +87,23 @@ type TestClient struct {
8587
Warehouse *WarehouseClient
8688
}
8789

88-
func NewTestClient(c *sdk.Client, database string, schema string, warehouse string, testObjectSuffix string) *TestClient {
90+
func NewTestClient(
91+
c *sdk.Client,
92+
database string,
93+
schema string,
94+
warehouse string,
95+
testObjectSuffix string,
96+
snowflakeEnvironment testenvs.SnowflakeEnvironment,
97+
) *TestClient {
8998
context := &TestClientContext{
90-
client: c,
91-
database: database,
92-
schema: schema,
93-
warehouse: warehouse,
94-
testObjectSuffix: testObjectSuffix,
99+
client: c,
100+
database: database,
101+
schema: schema,
102+
warehouse: warehouse,
103+
testObjectSuffix: testObjectSuffix,
104+
snowflakeEnvironment: snowflakeEnvironment,
95105
}
106+
96107
idsGenerator := NewIdsGenerator(context)
97108
return &TestClient{
98109
context: context,
@@ -155,6 +166,7 @@ func NewTestClient(c *sdk.Client, database string, schema string, warehouse stri
155166
SecurityIntegration: NewSecurityIntegrationClient(context, idsGenerator),
156167
SemanticView: NewSemanticViewClient(context, idsGenerator),
157168
Snapshot: NewSnapshotClient(context, idsGenerator),
169+
SnowflakeDefaults: NewSnowflakeDefaultsClient(context),
158170
Service: NewServiceClient(context, idsGenerator),
159171
Sequence: NewSequenceClient(context, idsGenerator),
160172
SessionPolicy: NewSessionPolicyClient(context, idsGenerator),
@@ -173,9 +185,10 @@ func NewTestClient(c *sdk.Client, database string, schema string, warehouse stri
173185
}
174186

175187
type TestClientContext struct {
176-
client *sdk.Client
177-
database string
178-
schema string
179-
warehouse string
180-
testObjectSuffix string
188+
client *sdk.Client
189+
database string
190+
schema string
191+
warehouse string
192+
testObjectSuffix string
193+
snowflakeEnvironment testenvs.SnowflakeEnvironment
181194
}

pkg/acceptance/snowflakedefaults/security_integration.go

Lines changed: 0 additions & 8 deletions
This file was deleted.

pkg/acceptance/snowflakedefaults/stream_on_directory_table.go

Lines changed: 0 additions & 14 deletions
This file was deleted.

pkg/acceptance/snowflakedefaults/snowflake_environment.go renamed to pkg/acceptance/testenvs/snowflake_environment.go

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
1-
package snowflakedefaults
1+
package testenvs
22

33
import (
44
"fmt"
55
"log"
66
"os"
77
"slices"
88
"strings"
9-
10-
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/acceptance/testenvs"
119
)
1210

1311
type SnowflakeEnvironment string
@@ -30,15 +28,15 @@ func parseSnowflakeEnvironment(environment string) (SnowflakeEnvironment, error)
3028
return "", fmt.Errorf("invalid Snowflake environment: %s, valid values are: %v", environment, allSnowflakeEnvironments)
3129
}
3230

33-
func getSnowflakeEnvironmentWithProdDefault() SnowflakeEnvironment {
34-
env := os.Getenv(string(testenvs.SnowflakeTestingEnvironment))
31+
func GetSnowflakeEnvironmentWithProdDefault() SnowflakeEnvironment {
32+
env := os.Getenv(string(SnowflakeTestingEnvironment))
3533
if env == "" {
36-
log.Printf("[DEBUG] Snowflake environment variable %s not set, returning default PROD environment", testenvs.SnowflakeTestingEnvironment)
34+
log.Printf("[DEBUG] Snowflake environment variable %s not set, returning default PROD environment", SnowflakeTestingEnvironment)
3735
return SnowflakeProdEnvironment
3836
}
3937
snowflakeEnvironment, err := parseSnowflakeEnvironment(env)
4038
if err != nil {
41-
log.Printf("[DEBUG] Failed to parse Snowflake environment variable (%s), returning default PROD environment, err = %s", testenvs.SnowflakeTestingEnvironment, err)
39+
log.Printf("[DEBUG] Failed to parse Snowflake environment variable (%s), returning default PROD environment, err = %s", SnowflakeTestingEnvironment, err)
4240
return SnowflakeProdEnvironment
4341
}
4442
return snowflakeEnvironment

pkg/acceptance/snowflakedefaults/snowflake_environment_test.go renamed to pkg/acceptance/testenvs/snowflake_environment_test.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package snowflakedefaults
1+
package testenvs
22

33
import (
44
"testing"
@@ -55,8 +55,6 @@ func TestParseSnowflakeEnvironment(t *testing.T) {
5555
for _, input := range testCases {
5656
input := input
5757
t.Run(input, func(t *testing.T) {
58-
t.Parallel()
59-
6058
_, err := parseSnowflakeEnvironment(input)
6159
require.Error(t, err)
6260
require.ErrorContains(t, err, "invalid Snowflake environment")

pkg/sdk/testint/setup_test.go

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,14 @@ func (itc *integrationTestContext) initialize() error {
145145
}
146146

147147
// TODO [SNOW-1763603]: we can't use test client because of the testing.T parameter that is not present here; discuss
148-
itc.testClient = helpers.NewTestClient(c, TestDatabaseName, TestSchemaName, TestWarehouseName, integrationtests.ObjectsSuffix)
148+
itc.testClient = helpers.NewTestClient(
149+
c,
150+
TestDatabaseName,
151+
TestSchemaName,
152+
TestWarehouseName,
153+
integrationtests.ObjectsSuffix,
154+
testenvs.GetSnowflakeEnvironmentWithProdDefault(),
155+
)
149156

150157
db, dbCleanup, err := testClientHelper().CreateTestDatabase(itc.ctx, false)
151158
itc.databaseCleanup = dbCleanup
@@ -186,7 +193,14 @@ func (itc *integrationTestContext) initialize() error {
186193
itc.secondaryClient = secondaryClient
187194
itc.secondaryCtx = context.Background()
188195

189-
itc.secondaryTestClient = helpers.NewTestClient(secondaryClient, TestDatabaseName, TestSchemaName, TestWarehouseName, integrationtests.ObjectsSuffix)
196+
itc.secondaryTestClient = helpers.NewTestClient(
197+
secondaryClient,
198+
TestDatabaseName,
199+
TestSchemaName,
200+
TestWarehouseName,
201+
integrationtests.ObjectsSuffix,
202+
testenvs.GetSnowflakeEnvironmentWithProdDefault(),
203+
)
190204

191205
secondaryDb, secondaryDbCleanup, err := secondaryTestClientHelper().CreateTestDatabase(itc.ctx, false)
192206
itc.secondaryDatabaseCleanup = secondaryDbCleanup

pkg/testacc/0_setup_test.go

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,14 @@ func (atc *acceptanceTestContext) initialize() error {
103103
}
104104
atc.config = defaultConfig
105105
atc.client = client
106-
atc.testClient = helpers.NewTestClient(client, TestDatabaseName, TestSchemaName, TestWarehouseName, acceptancetests.ObjectsSuffix)
106+
atc.testClient = helpers.NewTestClient(
107+
client,
108+
TestDatabaseName,
109+
TestSchemaName,
110+
TestWarehouseName,
111+
acceptancetests.ObjectsSuffix,
112+
testenvs.GetSnowflakeEnvironmentWithProdDefault(),
113+
)
107114

108115
ctx := context.Background()
109116
db, dbCleanup, err := testClient().CreateTestDatabase(ctx, false)
@@ -135,7 +142,14 @@ func (atc *acceptanceTestContext) initialize() error {
135142
}
136143
atc.secondaryConfig = secondaryConfig
137144
atc.secondaryClient = secondaryClient
138-
atc.secondaryTestClient = helpers.NewTestClient(secondaryClient, TestDatabaseName, TestSchemaName, TestWarehouseName, acceptancetests.ObjectsSuffix)
145+
atc.secondaryTestClient = helpers.NewTestClient(
146+
secondaryClient,
147+
TestDatabaseName,
148+
TestSchemaName,
149+
TestWarehouseName,
150+
acceptancetests.ObjectsSuffix,
151+
testenvs.GetSnowflakeEnvironmentWithProdDefault(),
152+
)
139153

140154
if secondaryConfig.Account == defaultConfig.Account {
141155
accTestLog.Printf("[WARN] Default and secondary configs are set to the same account; it may cause problems in tests requiring multiple accounts")

pkg/testacc/resource_oauth_integration_for_custom_clients_acceptance_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import (
99
"testing"
1010

1111
accconfig "github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/acceptance/bettertestspoc/config"
12-
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/acceptance/snowflakedefaults"
1312
resourcenames "github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/provider/resources"
1413

1514
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/acceptance/bettertestspoc/assert"
@@ -53,7 +52,7 @@ func TestAcc_OauthIntegrationForCustomClients_BasicUseCase(t *testing.T) {
5352
WithPreAuthorizedRoles(preAuthorizedRole.ID()).
5453
WithComment(comment)
5554

56-
enabledSnowflakeDefault := snowflakedefaults.EnabledValueForSnowflakeOauthSecurityIntegration()
55+
enabledSnowflakeDefault := testClient().SnowflakeDefaults.EnabledForSnowflakeOauthSecurityIntegration(t)
5756
enabledSnowflakeDefaultString := strconv.FormatBool(enabledSnowflakeDefault)
5857

5958
assertBasic := []assert.TestCheckFuncProvider{

pkg/testacc/resource_oauth_integration_for_partner_applications_acceptance_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ import (
2626
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/acceptance/helpers/random"
2727
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/acceptance/importchecks"
2828
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/acceptance/planchecks"
29-
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/acceptance/snowflakedefaults"
3029
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/datasources"
3130
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/internal/snowflakeroles"
3231
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/provider/resources"
@@ -51,7 +50,7 @@ func TestAcc_OauthIntegrationForPartnerApplications_BasicUseCase(t *testing.T) {
5150
WithOauthUseSecondaryRoles(string(sdk.OauthSecurityIntegrationUseSecondaryRolesImplicit)).
5251
WithComment(comment)
5352

54-
enabledSnowflakeDefault := snowflakedefaults.EnabledValueForSnowflakeOauthSecurityIntegration()
53+
enabledSnowflakeDefault := testClient().SnowflakeDefaults.EnabledForSnowflakeOauthSecurityIntegration(t)
5554
enabledSnowflakeDefaultString := strconv.FormatBool(enabledSnowflakeDefault)
5655

5756
assertBasic := []assert.TestCheckFuncProvider{

0 commit comments

Comments
 (0)