Skip to content

Commit 20a6b6b

Browse files
committed
chore(ci): refactor NE acceptance+sweep tests to avoid import cycles
Signed-off-by: Marques Johansson <[email protected]>
1 parent 97fa5b0 commit 20a6b6b

File tree

19 files changed

+1659
-578
lines changed

19 files changed

+1659
-578
lines changed

equinix/equinix_sweeper_test.go

Lines changed: 0 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,11 @@
11
package equinix
22

33
import (
4-
"fmt"
5-
"strconv"
6-
"strings"
74
"testing"
8-
"time"
9-
10-
"github.com/equinix/terraform-provider-equinix/internal/config"
115

126
"github.com/hashicorp/terraform-plugin-testing/helper/resource"
137
)
148

15-
const tstResourcePrefix = "tfacc"
16-
179
func TestMain(m *testing.M) {
1810
resource.TestMain(m)
1911
}
20-
21-
func sharedConfigForRegion(region string) (*config.Config, error) {
22-
endpoint := getFromEnvDefault(config.EndpointEnvVar, config.DefaultBaseURL)
23-
clientToken := getFromEnvDefault(config.ClientTokenEnvVar, "")
24-
clientID := getFromEnvDefault(config.ClientIDEnvVar, "")
25-
clientSecret := getFromEnvDefault(config.ClientSecretEnvVar, "")
26-
clientTimeout := getFromEnvDefault(config.ClientTimeoutEnvVar, strconv.Itoa(config.DefaultTimeout))
27-
clientTimeoutInt, err := strconv.Atoi(clientTimeout)
28-
if err != nil {
29-
return nil, fmt.Errorf("cannot convert value of '%s' env variable to int", config.ClientTimeoutEnvVar)
30-
}
31-
metalAuthToken := getFromEnvDefault(config.MetalAuthTokenEnvVar, "")
32-
33-
if clientToken == "" && (clientID == "" || clientSecret == "") && metalAuthToken == "" {
34-
return nil, fmt.Errorf("To run acceptance tests sweeper, one of '%s' or pair '%s' - '%s' must be set for Equinix Fabric and Network Edge, and '%s' for Equinix Metal",
35-
config.ClientTokenEnvVar, config.ClientIDEnvVar, config.ClientSecretEnvVar, config.MetalAuthTokenEnvVar)
36-
}
37-
38-
return &config.Config{
39-
AuthToken: metalAuthToken,
40-
BaseURL: endpoint,
41-
Token: clientToken,
42-
ClientID: clientID,
43-
ClientSecret: clientSecret,
44-
RequestTimeout: time.Duration(clientTimeoutInt) * time.Second,
45-
}, nil
46-
}
47-
48-
func isSweepableTestResource(namePrefix string) bool {
49-
return strings.HasPrefix(namePrefix, tstResourcePrefix)
50-
}

equinix/provider_test.go

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,6 @@ var (
4444
}
4545
)
4646

47-
type testAccConfig struct {
48-
ctx map[string]interface{}
49-
config string
50-
}
51-
5247
func init() {
5348
testAccProvider = Provider()
5449
testAccProviders = map[string]*schema.Provider{
@@ -112,39 +107,13 @@ func testAccPreCheck(t *testing.T) {
112107
}
113108
}
114109

115-
func newTestAccConfig(ctx map[string]interface{}) *testAccConfig {
116-
return &testAccConfig{
117-
ctx: ctx,
118-
config: "",
119-
}
120-
}
121-
122-
func (t *testAccConfig) build() string {
123-
return t.config
124-
}
125-
126110
func getFromEnv(varName string) (string, error) {
127111
if v := os.Getenv(varName); v != "" {
128112
return v, nil
129113
}
130114
return "", fmt.Errorf("environmental variable '%s' is not set", varName)
131115
}
132116

133-
func getFromEnvDefault(varName string, defaultValue string) string {
134-
if v := os.Getenv(varName); v != "" {
135-
return v
136-
}
137-
return defaultValue
138-
}
139-
140-
func copyMap(source map[string]interface{}) map[string]interface{} {
141-
target := make(map[string]interface{})
142-
for k, v := range source {
143-
target[k] = v
144-
}
145-
return target
146-
}
147-
148117
func setSchemaValueIfNotEmpty(key string, value interface{}, d *schema.ResourceData) error {
149118
if !comparisons.IsEmpty(value) {
150119
return d.Set(key, value)

internal/acceptance/acceptance.go

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,9 @@ import (
55
"sync"
66
"testing"
77

8-
"github.com/equinix/terraform-provider-equinix/equinix"
98
"github.com/equinix/terraform-provider-equinix/internal/config"
109
"github.com/equinix/terraform-provider-equinix/internal/env"
1110
"github.com/equinix/terraform-provider-equinix/internal/provider"
12-
"github.com/equinix/terraform-provider-equinix/version"
1311
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1412
terraformsdk "github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
1513
"github.com/hashicorp/terraform-plugin-testing/helper/resource"
@@ -33,19 +31,6 @@ var (
3331
testAccProviderConfigure sync.Once
3432
)
3533

36-
func init() {
37-
TestAccProvider = equinix.Provider()
38-
TestAccProviders = map[string]*schema.Provider{
39-
"equinix": TestAccProvider,
40-
}
41-
TestExternalProviders = map[string]resource.ExternalProvider{
42-
"random": {
43-
Source: "hashicorp/random",
44-
},
45-
}
46-
TestAccFrameworkProvider = provider.CreateFrameworkProvider(version.ProviderVersion).(*provider.FrameworkProvider)
47-
}
48-
4934
func TestAccPreCheck(t *testing.T) {
5035
var err error
5136

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package acceptance
2+
3+
import (
4+
"github.com/equinix/terraform-provider-equinix/equinix"
5+
"github.com/equinix/terraform-provider-equinix/internal/provider"
6+
"github.com/equinix/terraform-provider-equinix/version"
7+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
8+
"github.com/hashicorp/terraform-plugin-testing/helper/resource"
9+
)
10+
11+
func init() {
12+
TestAccProvider = equinix.Provider()
13+
TestAccProviders = map[string]*schema.Provider{
14+
"equinix": TestAccProvider,
15+
}
16+
TestExternalProviders = map[string]resource.ExternalProvider{
17+
"random": {
18+
Source: "hashicorp/random",
19+
},
20+
}
21+
TestAccFrameworkProvider = provider.CreateFrameworkProvider(version.ProviderVersion).(*provider.FrameworkProvider)
22+
}

internal/resources/networkedge/account/data_source_acc_test.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,16 @@ import (
44
"fmt"
55
"testing"
66

7+
"github.com/equinix/terraform-provider-equinix/internal/acceptance"
78
"github.com/equinix/terraform-provider-equinix/internal/nprintf"
89
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
910
"github.com/hashicorp/terraform-plugin-testing/helper/resource"
1011
)
1112

13+
const (
14+
networkDeviceMetroEnvVar = "TF_ACC_NETWORK_DEVICE_METRO"
15+
)
16+
1217
func TestAccDataSourceNetworkAccount_basic(t *testing.T) {
1318
metro, _ := schema.EnvDefaultFunc(networkDeviceMetroEnvVar, "SV")()
1419
context := map[string]interface{}{
@@ -19,8 +24,8 @@ func TestAccDataSourceNetworkAccount_basic(t *testing.T) {
1924
}
2025
resourceName := fmt.Sprintf("data.equinix_network_account.%s", context["resourceName"].(string))
2126
resource.ParallelTest(t, resource.TestCase{
22-
PreCheck: func() { testAccPreCheck(t) },
23-
Providers: testAccProviders,
27+
PreCheck: func() { acceptance.TestAccPreCheck(t) },
28+
Providers: acceptance.TestAccProviders,
2429
Steps: []resource.TestStep{
2530
{
2631
Config: testAccDataSourceNetworkAccountConfig_basic(context),

internal/resources/networkedge/acl_template/resource_acc_test.go

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,38 @@ import (
66
"log"
77
"testing"
88

9+
"github.com/equinix/terraform-provider-equinix/internal/acceptance"
910
"github.com/equinix/terraform-provider-equinix/internal/config"
1011
"github.com/equinix/terraform-provider-equinix/internal/nprintf"
12+
"github.com/equinix/terraform-provider-equinix/internal/sweep"
1113

1214
"github.com/equinix/ne-go"
1315
"github.com/hashicorp/terraform-plugin-testing/helper/acctest"
1416
"github.com/hashicorp/terraform-plugin-testing/helper/resource"
1517
"github.com/hashicorp/terraform-plugin-testing/terraform"
1618
)
1719

20+
const (
21+
tstResourcePrefix = "tfacc"
22+
)
23+
1824
func init() {
1925
resource.AddTestSweepers("equinix_network_acl_template", &resource.Sweeper{
2026
Name: "equinix_network_acl_template",
2127
F: testSweepNetworkACLTemplate,
2228
})
2329
}
2430

31+
func copyMap(source map[string]interface{}) map[string]interface{} {
32+
target := make(map[string]interface{})
33+
for k, v := range source {
34+
target[k] = v
35+
}
36+
return target
37+
}
38+
2539
func testSweepNetworkACLTemplate(region string) error {
26-
config, err := sharedConfigForRegion(region)
40+
config, err := sweep.SharedConfigForRegion(region)
2741
if err != nil {
2842
return fmt.Errorf("[INFO][SWEEPER_LOG] Error getting configuration for sweeping Network ACL Templates: %s", err)
2943
}
@@ -38,7 +52,7 @@ func testSweepNetworkACLTemplate(region string) error {
3852
}
3953
nonSweepableCount := 0
4054
for _, template := range templates {
41-
if !isSweepableTestResource(ne.StringValue(template.Name)) {
55+
if !sweep.IsSweepableTestResource(ne.StringValue(template.Name)) {
4256
nonSweepableCount++
4357
continue
4458
}
@@ -82,8 +96,8 @@ func TestAccNetworkACLTemplate(t *testing.T) {
8296
resourceName := "equinix_network_acl_template." + context["resourceName"].(string)
8397
var template ne.ACLTemplate
8498
resource.ParallelTest(t, resource.TestCase{
85-
PreCheck: func() { testAccPreCheck(t) },
86-
Providers: testAccProviders,
99+
PreCheck: func() { acceptance.TestAccPreCheck(t) },
100+
Providers: acceptance.TestAccProviders,
87101
Steps: []resource.TestStep{
88102
{
89103
Config: testAccNetworkACLTemplate(context),
@@ -147,7 +161,7 @@ func testAccNetworkACLTemplateExists(resourceName string, template *ne.ACLTempla
147161
if !ok {
148162
return fmt.Errorf("resource not found: %s", resourceName)
149163
}
150-
client := testAccProvider.Meta().(*config.Config).Ne
164+
client := acceptance.TestAccProvider.Meta().(*config.Config).Ne
151165
if rs.Primary.ID == "" {
152166
return fmt.Errorf("resource has no ID attribute set")
153167
}

internal/resources/networkedge/bgp/resource_acc_test.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"fmt"
55
"testing"
66

7+
"github.com/equinix/terraform-provider-equinix/internal/acceptance"
78
"github.com/equinix/terraform-provider-equinix/internal/config"
89
"github.com/equinix/terraform-provider-equinix/internal/nprintf"
910

@@ -68,8 +69,8 @@ func TestAccNetworkBGP_CSR1000V_Single_AWS(t *testing.T) {
6869
resourceName := fmt.Sprintf("equinix_network_bgp.%s", context["bgp-resourceName"].(string))
6970
var bgpConfig ne.BGPConfiguration
7071
resource.ParallelTest(t, resource.TestCase{
71-
PreCheck: func() { testAccPreCheck(t) },
72-
Providers: testAccProviders,
72+
PreCheck: func() { acceptance.TestAccPreCheck(t) },
73+
Providers: acceptance.TestAccProviders,
7374
Steps: []resource.TestStep{
7475
{
7576
Config: newTestAccConfig(context).withDevice().withSSHUser().withVDConnection().withBGP().build(),
@@ -142,7 +143,7 @@ func testAccNeBGPExists(resourceName string, bgpConfig *ne.BGPConfiguration) res
142143
if !ok {
143144
return fmt.Errorf("resource not found: %s", resourceName)
144145
}
145-
client := testAccProvider.Meta().(*config.Config).Ne
146+
client := acceptance.TestAccProvider.Meta().(*config.Config).Ne
146147
if rs.Primary.ID == "" {
147148
return fmt.Errorf("resource has no ID attribute set")
148149
}

0 commit comments

Comments
 (0)