Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 40 additions & 7 deletions pkg/acceptance/helpers/database_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,21 +30,25 @@ func (c *DatabaseClient) CreateDatabase(t *testing.T) (*sdk.Database, func()) {
return c.CreateDatabaseWithOptions(t, c.ids.RandomAccountObjectIdentifier(), &sdk.CreateDatabaseOptions{})
}

// DatabaseWithParametersSet should be used to create database which sets the parameters that can be altered on the account level in other tests; this way, the test is not affected by the changes.
func (c *DatabaseClient) DatabaseWithParametersSet(t *testing.T) (*sdk.Database, func()) {
// CreateDatabaseWithParametersSet should be used to create database which sets the parameters that can be altered on the account level in other tests; this way, the test is not affected by the changes.
func (c *DatabaseClient) CreateDatabaseWithParametersSet(t *testing.T) (*sdk.Database, func()) {
t.Helper()
return c.DatabaseWithParametersSetWithId(t, c.ids.RandomAccountObjectIdentifier())
return c.CreateDatabaseWithParametersSetWithId(t, c.ids.RandomAccountObjectIdentifier())
}

// DatabaseWithParametersSetWithId should be used to create database which sets the parameters that can be altered on the account level in other tests; this way, the test is not affected by the changes.
func (c *DatabaseClient) DatabaseWithParametersSetWithId(t *testing.T, id sdk.AccountObjectIdentifier) (*sdk.Database, func()) {
// CreateDatabaseWithParametersSetWithId should be used to create database which sets the parameters that can be altered on the account level in other tests; this way, the test is not affected by the changes.
func (c *DatabaseClient) CreateDatabaseWithParametersSetWithId(t *testing.T, id sdk.AccountObjectIdentifier) (*sdk.Database, func()) {
t.Helper()
return c.CreateDatabaseWithOptions(t, id, &sdk.CreateDatabaseOptions{
return c.CreateDatabaseWithOptions(t, id, c.testParametersSet())
}

func (c *DatabaseClient) testParametersSet() *sdk.CreateDatabaseOptions {
return &sdk.CreateDatabaseOptions{
DataRetentionTimeInDays: sdk.Int(1),
MaxDataExtensionTimeInDays: sdk.Int(1),
// according to the docs SNOWFLAKE is a valid value (https://docs.snowflake.com/en/sql-reference/parameters#catalog)
Catalog: sdk.Pointer(sdk.NewAccountObjectIdentifier("SNOWFLAKE")),
})
}
}

func (c *DatabaseClient) CreateDatabaseWithIdentifier(t *testing.T, id sdk.AccountObjectIdentifier) (*sdk.Database, func()) {
Expand Down Expand Up @@ -195,6 +199,35 @@ func (c *DatabaseClient) CreateDatabaseFromShareTemporarily(t *testing.T, extern
require.NoError(t, err)
}

// CreateDatabaseFromShare logic is duplicated from CreateDatabaseFromShareTemporarily.
Comment thread
sfc-gh-jmichalak marked this conversation as resolved.
func (c *DatabaseClient) CreateDatabaseFromShare(t *testing.T, externalShareId sdk.ExternalObjectIdentifier) (*sdk.Database, func()) {
t.Helper()

databaseId := c.ids.RandomAccountObjectIdentifier()
err := c.client().CreateShared(context.Background(), databaseId, externalShareId, c.testParametersSetSharedDatabase())
require.NoError(t, err)

var database *sdk.Database
require.Eventually(t, func() bool {
database, err = c.Show(t, databaseId)
if err != nil {
return false
}
// Origin is returned as "<revoked>" in those cases, because it's not valid sdk.ExternalObjectIdentifier parser sets it as nil.
// Once it turns into valid sdk.ExternalObjectIdentifier, we're ready to proceed with the actual test.
return database.Origin != nil
}, time.Minute, time.Second*6)

return database, c.DropDatabaseFunc(t, databaseId)
}

func (c *DatabaseClient) testParametersSetSharedDatabase() *sdk.CreateSharedDatabaseOptions {
return &sdk.CreateSharedDatabaseOptions{
// according to the docs SNOWFLAKE is a valid value (https://docs.snowflake.com/en/sql-reference/parameters#catalog)
Catalog: sdk.Pointer(sdk.NewAccountObjectIdentifier("SNOWFLAKE")),
}
}

func (c *DatabaseClient) ShowAllReplicationDatabases(t *testing.T) ([]sdk.ReplicationDatabase, error) {
t.Helper()
ctx := context.Background()
Expand Down
2 changes: 1 addition & 1 deletion pkg/datasources/schemas_acceptance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ func TestAcc_Schemas_Filtering(t *testing.T) {
_ = testenvs.GetOrSkipTest(t, testenvs.EnableAcceptance)
acc.TestAccPreCheck(t)

database2, database2Cleanup := acc.TestClient().Database.DatabaseWithParametersSet(t)
database2, database2Cleanup := acc.TestClient().Database.CreateDatabaseWithParametersSet(t)
t.Cleanup(database2Cleanup)

prefix := strings.ToUpper(random.AlphaN(4))
Expand Down
6 changes: 3 additions & 3 deletions pkg/resources/grant_database_role_acceptance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ func TestAcc_GrantDatabaseRole_issue2402(t *testing.T) {
_ = testenvs.GetOrSkipTest(t, testenvs.EnableAcceptance)
acc.TestAccPreCheck(t)

database, databaseCleanup := acc.TestClient().Database.DatabaseWithParametersSet(t)
database, databaseCleanup := acc.TestClient().Database.CreateDatabaseWithParametersSet(t)
t.Cleanup(databaseCleanup)

databaseRoleId := acc.TestClient().Ids.RandomDatabaseObjectIdentifierInDatabase(database.ID())
Expand Down Expand Up @@ -204,7 +204,7 @@ func TestAcc_GrantDatabaseRole_share(t *testing.T) {
_ = testenvs.GetOrSkipTest(t, testenvs.EnableAcceptance)
acc.TestAccPreCheck(t)

database, databaseCleanup := acc.TestClient().Database.DatabaseWithParametersSet(t)
database, databaseCleanup := acc.TestClient().Database.CreateDatabaseWithParametersSet(t)
t.Cleanup(databaseCleanup)

databaseRoleId := acc.TestClient().Ids.RandomDatabaseObjectIdentifierInDatabase(database.ID())
Expand Down Expand Up @@ -252,7 +252,7 @@ func TestAcc_GrantDatabaseRole_shareWithDots(t *testing.T) {
_ = testenvs.GetOrSkipTest(t, testenvs.EnableAcceptance)
acc.TestAccPreCheck(t)

database, databaseCleanup := acc.TestClient().Database.DatabaseWithParametersSet(t)
database, databaseCleanup := acc.TestClient().Database.CreateDatabaseWithParametersSet(t)
t.Cleanup(databaseCleanup)

databaseRoleId := acc.TestClient().Ids.RandomDatabaseObjectIdentifierInDatabase(database.ID())
Expand Down
44 changes: 22 additions & 22 deletions pkg/resources/grant_ownership_acceptance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ func TestAcc_GrantOwnership_OnObject_Database_ToAccountRole(t *testing.T) {
_ = testenvs.GetOrSkipTest(t, testenvs.EnableAcceptance)
acc.TestAccPreCheck(t)

database, databaseCleanup := acc.TestClient().Database.DatabaseWithParametersSet(t)
database, databaseCleanup := acc.TestClient().Database.CreateDatabaseWithParametersSet(t)
t.Cleanup(databaseCleanup)

databaseId := database.ID()
Expand Down Expand Up @@ -78,7 +78,7 @@ func TestAcc_GrantOwnership_OnObject_Database_IdentifiersWithDots(t *testing.T)
acc.TestAccPreCheck(t)

databaseId := acc.TestClient().Ids.RandomAccountObjectIdentifierContaining(".")
_, databaseCleanup := acc.TestClient().Database.DatabaseWithParametersSetWithId(t, databaseId)
_, databaseCleanup := acc.TestClient().Database.CreateDatabaseWithParametersSetWithId(t, databaseId)
t.Cleanup(databaseCleanup)

databaseName := databaseId.Name()
Expand Down Expand Up @@ -131,7 +131,7 @@ func TestAcc_GrantOwnership_OnObject_Schema_ToAccountRole(t *testing.T) {
_ = testenvs.GetOrSkipTest(t, testenvs.EnableAcceptance)
acc.TestAccPreCheck(t)

database, databaseCleanup := acc.TestClient().Database.DatabaseWithParametersSet(t)
database, databaseCleanup := acc.TestClient().Database.CreateDatabaseWithParametersSet(t)
t.Cleanup(databaseCleanup)

databaseId := database.ID()
Expand Down Expand Up @@ -189,7 +189,7 @@ func TestAcc_GrantOwnership_OnObject_Schema_ToDatabaseRole(t *testing.T) {
_ = testenvs.GetOrSkipTest(t, testenvs.EnableAcceptance)
acc.TestAccPreCheck(t)

database, databaseCleanup := acc.TestClient().Database.DatabaseWithParametersSet(t)
database, databaseCleanup := acc.TestClient().Database.CreateDatabaseWithParametersSet(t)
t.Cleanup(databaseCleanup)

databaseId := database.ID()
Expand Down Expand Up @@ -247,7 +247,7 @@ func TestAcc_GrantOwnership_OnObject_Table_ToAccountRole(t *testing.T) {
_ = testenvs.GetOrSkipTest(t, testenvs.EnableAcceptance)
acc.TestAccPreCheck(t)

database, databaseCleanup := acc.TestClient().Database.DatabaseWithParametersSet(t)
database, databaseCleanup := acc.TestClient().Database.CreateDatabaseWithParametersSet(t)
t.Cleanup(databaseCleanup)

databaseId := database.ID()
Expand Down Expand Up @@ -305,7 +305,7 @@ func TestAcc_GrantOwnership_OnObject_Table_ToDatabaseRole(t *testing.T) {
_ = testenvs.GetOrSkipTest(t, testenvs.EnableAcceptance)
acc.TestAccPreCheck(t)

database, databaseCleanup := acc.TestClient().Database.DatabaseWithParametersSet(t)
database, databaseCleanup := acc.TestClient().Database.CreateDatabaseWithParametersSet(t)
t.Cleanup(databaseCleanup)

databaseId := database.ID()
Expand Down Expand Up @@ -367,7 +367,7 @@ func TestAcc_GrantOwnership_OnObject_ProcedureWithArguments_ToAccountRole(t *tes
_ = testenvs.GetOrSkipTest(t, testenvs.EnableAcceptance)
acc.TestAccPreCheck(t)

database, databaseCleanup := acc.TestClient().Database.DatabaseWithParametersSet(t)
database, databaseCleanup := acc.TestClient().Database.CreateDatabaseWithParametersSet(t)
t.Cleanup(databaseCleanup)

databaseId := database.ID()
Expand Down Expand Up @@ -420,7 +420,7 @@ func TestAcc_GrantOwnership_OnObject_ProcedureWithoutArguments_ToDatabaseRole(t
_ = testenvs.GetOrSkipTest(t, testenvs.EnableAcceptance)
acc.TestAccPreCheck(t)

database, databaseCleanup := acc.TestClient().Database.DatabaseWithParametersSet(t)
database, databaseCleanup := acc.TestClient().Database.CreateDatabaseWithParametersSet(t)
t.Cleanup(databaseCleanup)

databaseId := database.ID()
Expand Down Expand Up @@ -473,7 +473,7 @@ func TestAcc_GrantOwnership_OnAll_InDatabase_ToAccountRole(t *testing.T) {
_ = testenvs.GetOrSkipTest(t, testenvs.EnableAcceptance)
acc.TestAccPreCheck(t)

database, databaseCleanup := acc.TestClient().Database.DatabaseWithParametersSet(t)
database, databaseCleanup := acc.TestClient().Database.CreateDatabaseWithParametersSet(t)
t.Cleanup(databaseCleanup)

databaseId := database.ID()
Expand Down Expand Up @@ -528,7 +528,7 @@ func TestAcc_GrantOwnership_OnAll_InSchema_ToAccountRole(t *testing.T) {
_ = testenvs.GetOrSkipTest(t, testenvs.EnableAcceptance)
acc.TestAccPreCheck(t)

database, databaseCleanup := acc.TestClient().Database.DatabaseWithParametersSet(t)
database, databaseCleanup := acc.TestClient().Database.CreateDatabaseWithParametersSet(t)
t.Cleanup(databaseCleanup)

databaseId := database.ID()
Expand Down Expand Up @@ -585,7 +585,7 @@ func TestAcc_GrantOwnership_OnFuture_InDatabase_ToAccountRole(t *testing.T) {
_ = testenvs.GetOrSkipTest(t, testenvs.EnableAcceptance)
acc.TestAccPreCheck(t)

database, databaseCleanup := acc.TestClient().Database.DatabaseWithParametersSet(t)
database, databaseCleanup := acc.TestClient().Database.CreateDatabaseWithParametersSet(t)
t.Cleanup(databaseCleanup)

databaseId := database.ID()
Expand Down Expand Up @@ -640,7 +640,7 @@ func TestAcc_GrantOwnership_OnFuture_InSchema_ToAccountRole(t *testing.T) {
_ = testenvs.GetOrSkipTest(t, testenvs.EnableAcceptance)
acc.TestAccPreCheck(t)

database, databaseCleanup := acc.TestClient().Database.DatabaseWithParametersSet(t)
database, databaseCleanup := acc.TestClient().Database.CreateDatabaseWithParametersSet(t)
t.Cleanup(databaseCleanup)

databaseId := database.ID()
Expand Down Expand Up @@ -699,7 +699,7 @@ func TestAcc_GrantOwnership_InvalidConfiguration_EmptyObjectType(t *testing.T) {
_ = testenvs.GetOrSkipTest(t, testenvs.EnableAcceptance)
acc.TestAccPreCheck(t)

database, databaseCleanup := acc.TestClient().Database.DatabaseWithParametersSet(t)
database, databaseCleanup := acc.TestClient().Database.CreateDatabaseWithParametersSet(t)
t.Cleanup(databaseCleanup)

roleId := acc.TestClient().Ids.RandomAccountObjectIdentifier()
Expand Down Expand Up @@ -729,7 +729,7 @@ func TestAcc_GrantOwnership_InvalidConfiguration_MultipleTargets(t *testing.T) {
_ = testenvs.GetOrSkipTest(t, testenvs.EnableAcceptance)
acc.TestAccPreCheck(t)

database, databaseCleanup := acc.TestClient().Database.DatabaseWithParametersSet(t)
database, databaseCleanup := acc.TestClient().Database.CreateDatabaseWithParametersSet(t)
t.Cleanup(databaseCleanup)

roleId := acc.TestClient().Ids.RandomAccountObjectIdentifier()
Expand Down Expand Up @@ -759,7 +759,7 @@ func TestAcc_GrantOwnership_TargetObjectRemovedOutsideTerraform(t *testing.T) {
_ = testenvs.GetOrSkipTest(t, testenvs.EnableAcceptance)
acc.TestAccPreCheck(t)

database, databaseCleanup := acc.TestClient().Database.DatabaseWithParametersSet(t)
database, databaseCleanup := acc.TestClient().Database.CreateDatabaseWithParametersSet(t)
t.Cleanup(databaseCleanup)

databaseId := database.ID()
Expand Down Expand Up @@ -817,7 +817,7 @@ func TestAcc_GrantOwnership_AccountRoleRemovedOutsideTerraform(t *testing.T) {
_ = testenvs.GetOrSkipTest(t, testenvs.EnableAcceptance)
acc.TestAccPreCheck(t)

database, databaseCleanup := acc.TestClient().Database.DatabaseWithParametersSet(t)
database, databaseCleanup := acc.TestClient().Database.CreateDatabaseWithParametersSet(t)
t.Cleanup(databaseCleanup)

accountRole, cleanupAccountRole := acc.TestClient().Role.CreateRole(t)
Expand Down Expand Up @@ -876,7 +876,7 @@ func TestAcc_GrantOwnership_OnMaterializedView(t *testing.T) {
_ = testenvs.GetOrSkipTest(t, testenvs.EnableAcceptance)
acc.TestAccPreCheck(t)

database, databaseCleanup := acc.TestClient().Database.DatabaseWithParametersSet(t)
database, databaseCleanup := acc.TestClient().Database.CreateDatabaseWithParametersSet(t)
t.Cleanup(databaseCleanup)

databaseId := database.ID()
Expand Down Expand Up @@ -941,7 +941,7 @@ func TestAcc_GrantOwnership_RoleBasedAccessControlUseCase(t *testing.T) {
_ = testenvs.GetOrSkipTest(t, testenvs.EnableAcceptance)
acc.TestAccPreCheck(t)

database, databaseCleanup := acc.TestClient().Database.DatabaseWithParametersSet(t)
database, databaseCleanup := acc.TestClient().Database.CreateDatabaseWithParametersSet(t)
t.Cleanup(databaseCleanup)

databaseName := database.ID().Name()
Expand Down Expand Up @@ -1024,7 +1024,7 @@ func TestAcc_GrantOwnership_MoveOwnershipOutsideTerraform(t *testing.T) {
_ = testenvs.GetOrSkipTest(t, testenvs.EnableAcceptance)
acc.TestAccPreCheck(t)

database, databaseCleanup := acc.TestClient().Database.DatabaseWithParametersSet(t)
database, databaseCleanup := acc.TestClient().Database.CreateDatabaseWithParametersSet(t)
t.Cleanup(databaseCleanup)

databaseId := database.ID()
Expand Down Expand Up @@ -1091,7 +1091,7 @@ func TestAcc_GrantOwnership_ForceOwnershipTransferOnCreate(t *testing.T) {
_ = testenvs.GetOrSkipTest(t, testenvs.EnableAcceptance)
acc.TestAccPreCheck(t)

database, databaseCleanup := acc.TestClient().Database.DatabaseWithParametersSet(t)
database, databaseCleanup := acc.TestClient().Database.CreateDatabaseWithParametersSet(t)
t.Cleanup(databaseCleanup)

role, roleCleanup := acc.TestClient().Role.CreateRole(t)
Expand Down Expand Up @@ -1420,7 +1420,7 @@ func TestAcc_GrantOwnership_OnDatabaseRole(t *testing.T) {
_ = testenvs.GetOrSkipTest(t, testenvs.EnableAcceptance)
acc.TestAccPreCheck(t)

database, databaseCleanup := acc.TestClient().Database.DatabaseWithParametersSet(t)
database, databaseCleanup := acc.TestClient().Database.CreateDatabaseWithParametersSet(t)
t.Cleanup(databaseCleanup)

databaseId := database.ID()
Expand Down Expand Up @@ -1575,7 +1575,7 @@ func TestAcc_GrantOwnership_IdentifierQuotingDiffSuppression(t *testing.T) {
_ = testenvs.GetOrSkipTest(t, testenvs.EnableAcceptance)
acc.TestAccPreCheck(t)

database, databaseCleanup := acc.TestClient().Database.DatabaseWithParametersSet(t)
database, databaseCleanup := acc.TestClient().Database.CreateDatabaseWithParametersSet(t)
t.Cleanup(databaseCleanup)

databaseId := database.ID()
Expand Down
3 changes: 1 addition & 2 deletions pkg/resources/grant_ownership_identifier_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,8 @@ package resources
import (
"testing"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"

"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/sdk"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/stretchr/testify/assert"
)

Expand Down
3 changes: 1 addition & 2 deletions pkg/resources/grant_ownership_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,10 @@ package resources
import (
"testing"

"github.com/stretchr/testify/require"

"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/sdk"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)

func TestGetOnObjectIdentifier(t *testing.T) {
Expand Down
Loading