From 5b20ec9132b7a7152fef36c019aad0f6f3fa1277 Mon Sep 17 00:00:00 2001 From: Mateusz Filipowicz Date: Fri, 3 Jan 2025 21:41:57 +0100 Subject: [PATCH 1/2] chore: make tests less flaky due to random naming of resources Refers #480 --- internal/provider/data_account_test.go | 18 +- internal/provider/data_user_test.go | 6 +- internal/provider/resource_account_test.go | 18 +- .../provider/resource_firewall_group_test.go | 13 +- .../provider/resource_port_forward_test.go | 18 +- .../provider/resource_port_profile_test.go | 14 +- .../provider/resource_radius_profile_test.go | 19 +- internal/provider/resource_user_group_test.go | 25 +- internal/provider/resource_user_test.go | 80 ++-- internal/provider/resource_wlan_test.go | 416 +++++++----------- 10 files changed, 269 insertions(+), 358 deletions(-) diff --git a/internal/provider/data_account_test.go b/internal/provider/data_account_test.go index dcb2c41..b3bba53 100644 --- a/internal/provider/data_account_test.go +++ b/internal/provider/data_account_test.go @@ -36,7 +36,7 @@ func TestAccDataAccount_mac(t *testing.T) { // TODO: CheckDestroy: , Steps: []resource.TestStep{ { - Config: testAccDataMacAccountConfig(mac), + Config: testAccDataAccountConfig(mac, mac), Check: resource.ComposeTestCheckFunc(), }, }, @@ -58,19 +58,3 @@ depends_on = [ } `, name, password) } - -func testAccDataMacAccountConfig(mac string) string { - return fmt.Sprintf(` -resource "unifi_account" "test" { - name = "%[1]s" - password = "%[1]s" -} - -data "unifi_account" "test" { - name = "%[1]s" -depends_on = [ - unifi_account.test - ] -} -`, mac) -} diff --git a/internal/provider/data_user_test.go b/internal/provider/data_user_test.go index 958b102..f907966 100644 --- a/internal/provider/data_user_test.go +++ b/internal/provider/data_user_test.go @@ -3,6 +3,7 @@ package provider import ( "context" "fmt" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" "testing" "github.com/hashicorp/terraform-plugin-testing/helper/resource" @@ -12,6 +13,7 @@ import ( func TestAccDataUser_default(t *testing.T) { mac, unallocateTestMac := allocateTestMac(t) defer unallocateTestMac() + name := acctest.RandomWithPrefix("tfacc") resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { @@ -19,8 +21,8 @@ func TestAccDataUser_default(t *testing.T) { _, err := testClient.CreateUser(context.Background(), "default", &unifi.User{ MAC: mac, - Name: "tfacc-User-Data", - Note: "tfacc-User-Data", + Name: name, + Note: name, }) if err != nil { t.Fatal(err) diff --git a/internal/provider/resource_account_test.go b/internal/provider/resource_account_test.go index 5ddd8a7..62be79d 100644 --- a/internal/provider/resource_account_test.go +++ b/internal/provider/resource_account_test.go @@ -2,22 +2,24 @@ package provider import ( "fmt" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" "testing" "github.com/hashicorp/terraform-plugin-testing/helper/resource" ) func TestAccAccount_basic(t *testing.T) { + name := acctest.RandomWithPrefix("tfacc") resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { preCheck(t) }, ProviderFactories: providerFactories, // TODO: CheckDestroy: , Steps: []resource.TestStep{ { - Config: testAccAccountConfig("tfacc", "secure"), + Config: testAccAccountConfig(name, "secure"), Check: resource.ComposeTestCheckFunc( // testCheckNetworkExists(t, "name"), - resource.TestCheckResourceAttr("unifi_account.test", "name", "tfacc"), + resource.TestCheckResourceAttr("unifi_account.test", "name", name), ), }, importStep("unifi_account.test"), @@ -26,17 +28,19 @@ func TestAccAccount_basic(t *testing.T) { } func TestAccAccount_mac(t *testing.T) { + mac, unallocateMac := allocateTestMac(t) + defer unallocateMac() resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { preCheck(t) }, ProviderFactories: providerFactories, // TODO: CheckDestroy: , Steps: []resource.TestStep{ { - Config: testAccAccountConfig("00B0D06FC226", "00B0D06FC226"), + Config: testAccAccountConfig(mac, mac), Check: resource.ComposeTestCheckFunc( // testCheckNetworkExists(t, "name"), - resource.TestCheckResourceAttr("unifi_account.test", "name", "00B0D06FC226"), - resource.TestCheckResourceAttr("unifi_account.test", "password", "00B0D06FC226"), + resource.TestCheckResourceAttr("unifi_account.test", "name", mac), + resource.TestCheckResourceAttr("unifi_account.test", "password", mac), ), }, importStep("unifi_account.test"), @@ -47,8 +51,8 @@ func TestAccAccount_mac(t *testing.T) { func testAccAccountConfig(name, password string) string { return fmt.Sprintf(` resource "unifi_account" "test" { - name = "%s" - password = "%s" + name = "%[1]s" + password = "%[2]s" } `, name, password) } diff --git a/internal/provider/resource_firewall_group_test.go b/internal/provider/resource_firewall_group_test.go index 840f638..eb29e1e 100644 --- a/internal/provider/resource_firewall_group_test.go +++ b/internal/provider/resource_firewall_group_test.go @@ -2,6 +2,7 @@ package provider import ( "fmt" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" "regexp" "strings" "testing" @@ -10,20 +11,21 @@ import ( ) func TestAccFirewallGroup_port_group(t *testing.T) { + name := acctest.RandomWithPrefix("tfacc") resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { preCheck(t) }, ProviderFactories: providerFactories, // TODO: CheckDestroy: , Steps: []resource.TestStep{ { - Config: testAccFirewallGroupConfig("testpg", "port-group", nil), + Config: testAccFirewallGroupConfig(name, "port-group", nil), // Check: resource.ComposeTestCheckFunc( // // testCheckFirewallGroupExists(t, "name"), // ), }, importStep("unifi_firewall_group.test"), { - Config: testAccFirewallGroupConfig("testpg", "port-group", []string{"80", "443"}), + Config: testAccFirewallGroupConfig(name, "port-group", []string{"80", "443"}), }, importStep("unifi_firewall_group.test"), }, @@ -31,24 +33,25 @@ func TestAccFirewallGroup_port_group(t *testing.T) { } func TestAccFirewallGroup_address_group(t *testing.T) { + name := acctest.RandomWithPrefix("tfacc") resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { preCheck(t) }, ProviderFactories: providerFactories, // TODO: CheckDestroy: , Steps: []resource.TestStep{ { - Config: testAccFirewallGroupConfig("testag", "address-group", nil), + Config: testAccFirewallGroupConfig(name, "address-group", nil), // Check: resource.ComposeTestCheckFunc( // // testCheckFirewallGroupExists(t, "name"), // ), }, importStep("unifi_firewall_group.test"), { - Config: testAccFirewallGroupConfig("testag", "address-group", []string{"10.0.0.1", "10.0.0.2"}), + Config: testAccFirewallGroupConfig(name, "address-group", []string{"10.0.0.1", "10.0.0.2"}), }, importStep("unifi_firewall_group.test"), { - Config: testAccFirewallGroupConfig("testag", "address-group", []string{"10.0.0.0/24"}), + Config: testAccFirewallGroupConfig(name, "address-group", []string{"10.0.0.0/24"}), }, importStep("unifi_firewall_group.test"), }, diff --git a/internal/provider/resource_port_forward_test.go b/internal/provider/resource_port_forward_test.go index bdfebb2..69981b6 100644 --- a/internal/provider/resource_port_forward_test.go +++ b/internal/provider/resource_port_forward_test.go @@ -2,19 +2,23 @@ package provider import ( "fmt" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" "testing" "github.com/hashicorp/terraform-plugin-testing/helper/resource" ) func TestAccPortForward_basic(t *testing.T) { + name := acctest.RandomWithPrefix("tfacc") + name2 := acctest.RandomWithPrefix("tfacc") + resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { preCheck(t) }, ProviderFactories: providerFactories, // TODO: CheckDestroy: , Steps: []resource.TestStep{ { - Config: testAccPortForwardConfig("22", false, "10.1.1.1", "22", "fwd name"), + Config: testAccPortForwardConfig("22", false, "10.1.1.1", "22", name), Check: resource.ComposeTestCheckFunc( // testCheckNetworkExists(t, "name"), resource.TestCheckResourceAttr("unifi_port_forward.test", "dst_port", "22"), @@ -22,7 +26,7 @@ func TestAccPortForward_basic(t *testing.T) { }, importStep("unifi_port_forward.test"), { - Config: testAccPortForwardConfig("22", false, "10.1.1.2", "8022", "fwd name"), + Config: testAccPortForwardConfig("22", false, "10.1.1.2", "8022", name), Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr("unifi_port_forward.test", "fwd_port", "8022"), resource.TestCheckResourceAttr("unifi_port_forward.test", "fwd_ip", "10.1.1.2"), @@ -30,9 +34,9 @@ func TestAccPortForward_basic(t *testing.T) { }, importStep("unifi_port_forward.test"), { - Config: testAccPortForwardConfig("22", false, "10.1.1.1", "22", "fwd name 2"), + Config: testAccPortForwardConfig("22", false, "10.1.1.1", "22", name2), Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttr("unifi_port_forward.test", "name", "fwd name 2"), + resource.TestCheckResourceAttr("unifi_port_forward.test", "name", name2), ), }, importStep("unifi_port_forward.test"), @@ -41,13 +45,14 @@ func TestAccPortForward_basic(t *testing.T) { } func TestAccPortForward_src_ip(t *testing.T) { + name := acctest.RandomWithPrefix("tfacc") resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { preCheck(t) }, ProviderFactories: providerFactories, // TODO: CheckDestroy: , Steps: []resource.TestStep{ { - Config: testAccPortForwardConfigSrc("22", false, "10.1.1.1", "22", "fwd name", "192.168.1.0"), + Config: testAccPortForwardConfigSrc("22", false, "10.1.1.1", "22", name, "192.168.1.0"), Check: resource.ComposeTestCheckFunc( // testCheckNetworkExists(t, "name"), resource.TestCheckResourceAttr("unifi_port_forward.test", "dst_port", "22"), @@ -59,13 +64,14 @@ func TestAccPortForward_src_ip(t *testing.T) { } func TestAccPortForward_src_cidr(t *testing.T) { + name := acctest.RandomWithPrefix("tfacc") resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { preCheck(t) }, ProviderFactories: providerFactories, // TODO: CheckDestroy: , Steps: []resource.TestStep{ { - Config: testAccPortForwardConfigSrc("22", false, "10.1.1.1", "22", "fwd name", "192.168.1.0/20"), + Config: testAccPortForwardConfigSrc("22", false, "10.1.1.1", "22", name, "192.168.1.0/20"), Check: resource.ComposeTestCheckFunc( // testCheckNetworkExists(t, "name"), resource.TestCheckResourceAttr("unifi_port_forward.test", "dst_port", "22"), diff --git a/internal/provider/resource_port_profile_test.go b/internal/provider/resource_port_profile_test.go index b0fee03..d3a852a 100644 --- a/internal/provider/resource_port_profile_test.go +++ b/internal/provider/resource_port_profile_test.go @@ -1,12 +1,15 @@ package provider import ( + "fmt" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" "testing" "github.com/hashicorp/terraform-plugin-testing/helper/resource" ) func TestAccPortProfile_basic(t *testing.T) { + name := acctest.RandomWithPrefix("tfacc") resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { preCheck(t) @@ -16,9 +19,10 @@ func TestAccPortProfile_basic(t *testing.T) { // TODO: CheckDestroy: , Steps: []resource.TestStep{ { - Config: testAccPortProfileConfig, + Config: testAccPortProfileConfig(name), Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr("unifi_port_profile.test", "poe_mode", "off"), + resource.TestCheckResourceAttr("unifi_port_profile.test", "name", name), ), }, importStep("unifi_port_profile.test"), @@ -26,12 +30,14 @@ func TestAccPortProfile_basic(t *testing.T) { }) } -const testAccPortProfileConfig = ` +func testAccPortProfileConfig(name string) string { + return fmt.Sprintf(` resource "unifi_port_profile" "test" { - name = "provider created" + name = "%s" poe_mode = "off" speed = 1000 stp_port_mode = false } -` +`, name) +} diff --git a/internal/provider/resource_radius_profile_test.go b/internal/provider/resource_radius_profile_test.go index 7b71598..300f429 100644 --- a/internal/provider/resource_radius_profile_test.go +++ b/internal/provider/resource_radius_profile_test.go @@ -2,21 +2,23 @@ package provider import ( "fmt" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" "testing" "github.com/hashicorp/terraform-plugin-testing/helper/resource" ) func TestAccRadiusProfile_basic(t *testing.T) { + name := acctest.RandomWithPrefix("tfacc") resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { preCheck(t) }, ProviderFactories: providerFactories, // TODO: CheckDestroy: , Steps: []resource.TestStep{ { - Config: testAccRadiusProfileConfig("test"), + Config: testAccRadiusProfileConfig(name), Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttr("unifi_radius_profile.test", "name", "test"), + resource.TestCheckResourceAttr("unifi_radius_profile.test", "name", name), ), }, importStep("unifi_radius_profile.test"), @@ -25,15 +27,16 @@ func TestAccRadiusProfile_basic(t *testing.T) { } func TestAccRadiusProfile_servers(t *testing.T) { + name := acctest.RandomWithPrefix("tfacc") resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { preCheck(t) }, ProviderFactories: providerFactories, // TODO: CheckDestroy: , Steps: []resource.TestStep{ { - Config: testAccRadiusProfileConfigServer(), + Config: testAccRadiusProfileConfigServer(name), Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttr("unifi_radius_profile.test", "name", "test"), + resource.TestCheckResourceAttr("unifi_radius_profile.test", "name", name), ), }, importStep("unifi_radius_profile.test"), @@ -61,10 +64,10 @@ func TestAccRadiusProfile_importByName(t *testing.T) { }) } -func testAccRadiusProfileConfigServer() string { - return ` +func testAccRadiusProfileConfigServer(name string) string { + return fmt.Sprintf(` resource "unifi_radius_profile" "test" { - name = "test" + name = "%s" auth_server { ip = "192.168.1.1" xsecret = "securepw1" @@ -86,7 +89,7 @@ resource "unifi_radius_profile" "test" { use_usg_acct_server = false use_usg_auth_server = false } -` +`, name) } func testAccRadiusProfileConfig(name string) string { diff --git a/internal/provider/resource_user_group_test.go b/internal/provider/resource_user_group_test.go index d48f508..46b3b19 100644 --- a/internal/provider/resource_user_group_test.go +++ b/internal/provider/resource_user_group_test.go @@ -1,46 +1,53 @@ package provider import ( + "fmt" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" "testing" "github.com/hashicorp/terraform-plugin-testing/helper/resource" ) func TestAccUserGroup_basic(t *testing.T) { + name := acctest.RandomWithPrefix("tfacc") resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { preCheck(t) }, ProviderFactories: providerFactories, // TODO: CheckDestroy: , Steps: []resource.TestStep{ { - Config: testAccUserGroupConfig, + Config: testAccUserGroupConfig(name), // Check: resource.ComposeTestCheckFunc( // // testCheckUserGroupExists(t, "name"), // ), }, { - Config: testAccUserGroupConfig_qos, + Config: testAccUserGroupConfig_qos(name), }, importStep("unifi_user_group.test"), { - Config: testAccUserGroupConfig, + Config: testAccUserGroupConfig(name), }, importStep("unifi_user_group.test"), }, }) } -const testAccUserGroupConfig = ` +func testAccUserGroupConfig(name string) string { + return fmt.Sprintf(` resource "unifi_user_group" "test" { - name = "tfacc" + name = "%s" +} +`, name) } -` -const testAccUserGroupConfig_qos = ` +func testAccUserGroupConfig_qos(name string) string { + return fmt.Sprintf(` resource "unifi_user_group" "test" { - name = "tfacc" + name = "%s" qos_rate_max_up = 2000 qos_rate_max_down = 50 } -` +`, name) +} diff --git a/internal/provider/resource_user_test.go b/internal/provider/resource_user_test.go index 61078ee..6f1af46 100644 --- a/internal/provider/resource_user_test.go +++ b/internal/provider/resource_user_test.go @@ -3,6 +3,7 @@ package provider import ( "context" "fmt" + "github.com/hashicorp/terraform-plugin-testing/helper/acctest" "net" "regexp" "strings" @@ -56,7 +57,7 @@ func TestAccUser_basic(t *testing.T) { func TestAccUser_fixed_ip(t *testing.T) { mac, unallocateTestMac := allocateTestMac(t) defer unallocateTestMac() - + name := acctest.RandomWithPrefix("tfacc") subnet, vlan := getTestVLAN(t) ip, err := cidr.Host(subnet, 1) @@ -70,7 +71,7 @@ func TestAccUser_fixed_ip(t *testing.T) { // TODO: CheckDestroy: , Steps: []resource.TestStep{ { - Config: testAccUserConfig(mac, "tfacc", "tfacc fixed ip"), + Config: testAccUserConfig(mac, name, "tfacc fixed ip"), Check: resource.ComposeTestCheckFunc( // testCheckNetworkExists(t, "name"), resource.TestCheckResourceAttr("unifi_user.test", "fixed_ip", ""), @@ -78,7 +79,7 @@ func TestAccUser_fixed_ip(t *testing.T) { }, userImportStep("unifi_user.test"), { - Config: testAccUserConfig_fixedIP(subnet, vlan, mac, &ip), + Config: testAccUserConfig_fixedIP(name, subnet, vlan, mac, &ip), Check: resource.ComposeTestCheckFunc( // testCheckNetworkExists(t, "name"), resource.TestCheckResourceAttr("unifi_user.test", "fixed_ip", ip.String()), @@ -89,7 +90,7 @@ func TestAccUser_fixed_ip(t *testing.T) { // this passes the network again even though its not used // to avoid a destroy order of operations issue, can // maybe work it out some other way - Config: testAccUserConfig_network(subnet, vlan) + testAccUserConfig(mac, "tfacc", "tfacc fixed ip"), + Config: testAccUserConfig_network(name, subnet, vlan) + testAccUserConfig(mac, name, "tfacc fixed ip"), Check: resource.ComposeTestCheckFunc( // testCheckNetworkExists(t, "name"), resource.TestCheckResourceAttr("unifi_user.test", "fixed_ip", ""), @@ -103,6 +104,7 @@ func TestAccUser_fixed_ip(t *testing.T) { func TestAccUser_blocking(t *testing.T) { mac, unallocateTestMac := allocateTestMac(t) defer unallocateTestMac() + name := acctest.RandomWithPrefix("tfacc") resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { preCheck(t) }, @@ -110,7 +112,7 @@ func TestAccUser_blocking(t *testing.T) { // TODO: CheckDestroy: , Steps: []resource.TestStep{ { - Config: testAccUserConfig_block(mac, false), + Config: testAccUserConfig_block(mac, name, false), Check: resource.ComposeTestCheckFunc( // testCheckNetworkExists(t, "name"), resource.TestCheckResourceAttr("unifi_user.test", "blocked", "false"), @@ -118,7 +120,7 @@ func TestAccUser_blocking(t *testing.T) { }, userImportStep("unifi_user.test"), { - Config: testAccUserConfig_block(mac, true), + Config: testAccUserConfig_block(mac, name, true), Check: resource.ComposeTestCheckFunc( // testCheckNetworkExists(t, "name"), resource.TestCheckResourceAttr("unifi_user.test", "blocked", "true"), @@ -126,7 +128,7 @@ func TestAccUser_blocking(t *testing.T) { }, userImportStep("unifi_user.test"), { - Config: testAccUserConfig_block(mac, false), + Config: testAccUserConfig_block(mac, name, false), Check: resource.ComposeTestCheckFunc( // testCheckNetworkExists(t, "name"), resource.TestCheckResourceAttr("unifi_user.test", "blocked", "false"), @@ -140,6 +142,7 @@ func TestAccUser_blocking(t *testing.T) { func TestAccUser_existing_mac_allow(t *testing.T) { mac, unallocateTestMac := allocateTestMac(t) defer unallocateTestMac() + name := acctest.RandomWithPrefix("tfacc") resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { @@ -147,7 +150,7 @@ func TestAccUser_existing_mac_allow(t *testing.T) { _, err := testClient.CreateUser(context.Background(), "default", &unifi.User{ MAC: mac, - Name: "tfacc-existing", + Name: name, Note: "tfacc-existing", }) if err != nil && strings.Contains(err.Error(), "api.Err.MacUsed") { @@ -162,7 +165,7 @@ func TestAccUser_existing_mac_allow(t *testing.T) { }, Steps: []resource.TestStep{ { - Config: testAccUserConfig_existing(mac, "tfacc", "tfacc note", true, true), + Config: testAccUserConfig_existing(mac, name, "tfacc note", true, true), Check: resource.ComposeTestCheckFunc( // testCheckNetworkExists(t, "name"), resource.TestCheckResourceAttr("unifi_user.test", "note", "tfacc note"), @@ -175,10 +178,11 @@ func TestAccUser_existing_mac_allow(t *testing.T) { func TestAccUser_existing_mac_deny(t *testing.T) { mac, unallocateTestMac := allocateTestMac(t) + name := acctest.RandomWithPrefix("tfacc") _, err := testClient.CreateUser(context.Background(), "default", &unifi.User{ MAC: mac, - Name: "tfacc-existing", + Name: name, Note: "tfacc-existing", }) if err != nil { @@ -199,7 +203,7 @@ func TestAccUser_existing_mac_deny(t *testing.T) { ProviderFactories: providerFactories, Steps: []resource.TestStep{ { - Config: testAccUserConfig_existing(mac, "tfacc", "tfacc note", false, false), + Config: testAccUserConfig_existing(mac, name, "tfacc note", false, false), ExpectError: regexp.MustCompile(`api\.err\.MacUsed`), }, }, @@ -209,27 +213,28 @@ func TestAccUser_existing_mac_deny(t *testing.T) { func TestAccUser_fingerprint(t *testing.T) { mac, unallocateTestMac := allocateTestMac(t) defer unallocateTestMac() + name := acctest.RandomWithPrefix("tfacc") resource.ParallelTest(t, resource.TestCase{ ProviderFactories: providerFactories, CheckDestroy: testCheckUserDestroy, Steps: []resource.TestStep{ { - Config: testAccUserConfig_fingerprint(mac, "tfacc", 123), + Config: testAccUserConfig_fingerprint(mac, name, 123), Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr("unifi_user.test", "dev_id_override", "123"), ), }, userImportStep("unifi_user.test"), { - Config: testAccUserConfig_fingerprint(mac, "tfacc", 456), + Config: testAccUserConfig_fingerprint(mac, name, 456), Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr("unifi_user.test", "dev_id_override", "456"), ), }, userImportStep("unifi_user.test"), { - Config: testAccUserConfig(mac, "tfacc", ""), + Config: testAccUserConfig(mac, name, ""), Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr("unifi_user.test", "dev_id_override", "0"), ), @@ -242,6 +247,7 @@ func TestAccUser_fingerprint(t *testing.T) { func TestAccUser_localdns(t *testing.T) { mac, unallocateTestMac := allocateTestMac(t) defer unallocateTestMac() + name := acctest.RandomWithPrefix("tfacc") subnet, vlan := getTestVLAN(t) @@ -259,21 +265,21 @@ func TestAccUser_localdns(t *testing.T) { CheckDestroy: testCheckUserDestroy, Steps: []resource.TestStep{ { - Config: testAccUserConfig(mac, "tfacc", ""), + Config: testAccUserConfig(mac, name, ""), Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr("unifi_user.test", "local_dns_record", ""), ), }, userImportStep("unifi_user.test"), { - Config: testAccUserConfig_localdns(subnet, vlan, mac, "tfacc", "resource.example.com", &ip), + Config: testAccUserConfig_localdns(subnet, vlan, mac, name, "resource.example.com", &ip), Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr("unifi_user.test", "local_dns_record", "resource.example.com"), ), }, userImportStep("unifi_user.test"), { - Config: testAccUserConfig_localdns(subnet, vlan, mac, "tfacc", "", &ip), + Config: testAccUserConfig_localdns(subnet, vlan, mac, name, "", &ip), Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr("unifi_user.test", "local_dns_record", ""), ), @@ -314,44 +320,44 @@ resource "unifi_user" "test" { `, mac, name, note) } -func testAccUserConfig_network(subnet *net.IPNet, vlan int) string { +func testAccUserConfig_network(name string, subnet *net.IPNet, vlan int) string { return fmt.Sprintf(` resource "unifi_network" "test" { - name = "tfaccfixedip" + name = "%[1]s" purpose = "corporate" - vlan_id = %[2]d - subnet = "%[1]s" - dhcp_start = cidrhost("%[1]s", 6) - dhcp_stop = cidrhost("%[1]s", 254) + vlan_id = %[3]d + subnet = "%[2]s" + dhcp_start = cidrhost("%[2]s", 6) + dhcp_stop = cidrhost("%[2]s", 254) dhcp_enabled = true } -`, subnet, vlan) +`, name, subnet, vlan) } -func testAccUserConfig_fixedIP(subnet *net.IPNet, vlan int, mac string, ip *net.IP) string { - return fmt.Sprintf(testAccUserConfig_network(subnet, vlan)+` +func testAccUserConfig_fixedIP(name string, subnet *net.IPNet, vlan int, mac string, ip *net.IP) string { + return fmt.Sprintf(testAccUserConfig_network(name, subnet, vlan)+` resource "unifi_user" "test" { mac = "%[1]s" - name = "tfacc" - note = "tfacc fixed ip" + name = "%[2]s" + note = "%[2]s fixed ip" - fixed_ip = "%[2]s" + fixed_ip = "%[3]s" network_id = unifi_network.test.id } -`, mac, ip) +`, mac, name, ip) } -func testAccUserConfig_block(mac string, blocked bool) string { +func testAccUserConfig_block(mac, name string, blocked bool) string { return fmt.Sprintf(` resource "unifi_user" "test" { - mac = "%s" - name = "tfacc" - note = "tfacc block %t" + mac = "%[1]s" + name = "%[2]s" + note = "%[2]s block %[3]t" - blocked = %t + blocked = %[3]t } -`, mac, blocked, blocked) +`, mac, name, blocked) } func testAccUserConfig_existing(mac, name, note string, allow, skip bool) string { @@ -378,7 +384,7 @@ resource "unifi_user" "test" { } func testAccUserConfig_localdns(subnet *net.IPNet, vlan int, mac, name string, localDnsRecord string, ip *net.IP) string { - return fmt.Sprintf(testAccUserConfig_network(subnet, vlan)+` + return fmt.Sprintf(testAccUserConfig_network(name, subnet, vlan)+` resource "unifi_user" "test" { mac = "%[1]s" name = "%[2]s" diff --git a/internal/provider/resource_wlan_test.go b/internal/provider/resource_wlan_test.go index 8d5691f..bd61d63 100644 --- a/internal/provider/resource_wlan_test.go +++ b/internal/provider/resource_wlan_test.go @@ -11,7 +11,9 @@ import ( ) func TestAccWLAN_wpapsk(t *testing.T) { + name := acctest.RandomWithPrefix("tfacc") subnet, vlan := getTestVLAN(t) + resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { preCheck(t) }, ProviderFactories: providerFactories, @@ -22,9 +24,9 @@ func TestAccWLAN_wpapsk(t *testing.T) { }, Steps: []resource.TestStep{ { - Config: testAccWLANConfig_wpapsk(subnet, vlan, "disabled"), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Config: testAccWLANConfig_wpapsk(name, subnet, vlan, "disabled"), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), @@ -33,7 +35,9 @@ func TestAccWLAN_wpapsk(t *testing.T) { } func TestAccWLAN_open(t *testing.T) { + name := acctest.RandomWithPrefix("tfacc") subnet, vlan := getTestVLAN(t) + resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { preCheck(t) }, ProviderFactories: providerFactories, @@ -44,23 +48,23 @@ func TestAccWLAN_open(t *testing.T) { }, Steps: []resource.TestStep{ { - Config: testAccWLANConfig_open(subnet, vlan), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Config: testAccWLANConfig_open(name, subnet, vlan), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), { - Config: testAccWLANConfig_open_mac_filter(subnet, vlan), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Config: testAccWLANConfig_open_mac_filter(name, subnet, vlan), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), { - Config: testAccWLANConfig_open(subnet, vlan), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Config: testAccWLANConfig_open(name, subnet, vlan), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), @@ -69,7 +73,9 @@ func TestAccWLAN_open(t *testing.T) { } func TestAccWLAN_change_security_and_pmf(t *testing.T) { + name := acctest.RandomWithPrefix("tfacc") subnet, vlan := getTestVLAN(t) + resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { preCheck(t) }, ProviderFactories: providerFactories, @@ -80,37 +86,37 @@ func TestAccWLAN_change_security_and_pmf(t *testing.T) { }, Steps: []resource.TestStep{ { - Config: testAccWLANConfig_wpapsk(subnet, vlan, "disabled"), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Config: testAccWLANConfig_wpapsk(name, subnet, vlan, "disabled"), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), { - Config: testAccWLANConfig_open(subnet, vlan), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Config: testAccWLANConfig_open(name, subnet, vlan), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), { - Config: testAccWLANConfig_wpapsk(subnet, vlan, "optional"), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Config: testAccWLANConfig_wpapsk(name, subnet, vlan, "optional"), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), { - Config: testAccWLANConfig_wpapsk(subnet, vlan, "required"), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Config: testAccWLANConfig_wpapsk(name, subnet, vlan, "required"), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), { - Config: testAccWLANConfig_wpapsk(subnet, vlan, "disabled"), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Config: testAccWLANConfig_wpapsk(name, subnet, vlan, "disabled"), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), @@ -119,7 +125,9 @@ func TestAccWLAN_change_security_and_pmf(t *testing.T) { } func TestAccWLAN_schedule(t *testing.T) { + name := acctest.RandomWithPrefix("tfacc") subnet, vlan := getTestVLAN(t) + resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { preCheck(t) }, ProviderFactories: providerFactories, @@ -130,17 +138,17 @@ func TestAccWLAN_schedule(t *testing.T) { }, Steps: []resource.TestStep{ { - Config: testAccWLANConfig_schedule(subnet, vlan), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Config: testAccWLANConfig_schedule(name, subnet, vlan), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), // remove schedule { - Config: testAccWLANConfig_open(subnet, vlan), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Config: testAccWLANConfig_open(name, subnet, vlan), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), @@ -149,6 +157,7 @@ func TestAccWLAN_schedule(t *testing.T) { } func TestAccWLAN_wpaeap(t *testing.T) { + name := acctest.RandomWithPrefix("tfacc") subnet, vlan := getTestVLAN(t) resource.ParallelTest(t, resource.TestCase{ @@ -161,9 +170,9 @@ func TestAccWLAN_wpaeap(t *testing.T) { }, Steps: []resource.TestStep{ { - Config: testAccWLANConfig_wpaeap(subnet, vlan), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Config: testAccWLANConfig_wpaeap(name, subnet, vlan), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), @@ -172,7 +181,9 @@ func TestAccWLAN_wpaeap(t *testing.T) { } func TestAccWLAN_wlan_band(t *testing.T) { + name := acctest.RandomWithPrefix("tfacc") subnet, vlan := getTestVLAN(t) + resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { preCheck(t) }, ProviderFactories: providerFactories, @@ -183,9 +194,9 @@ func TestAccWLAN_wlan_band(t *testing.T) { }, Steps: []resource.TestStep{ { - Config: testAccWLANConfig_wlan_band(subnet, vlan), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Config: testAccWLANConfig_wlan_band(name, subnet, vlan), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), @@ -194,7 +205,9 @@ func TestAccWLAN_wlan_band(t *testing.T) { } func TestAccWLAN_no2ghz_oui(t *testing.T) { + name := acctest.RandomWithPrefix("tfacc") subnet, vlan := getTestVLAN(t) + resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { preCheck(t) }, ProviderFactories: providerFactories, @@ -205,9 +218,9 @@ func TestAccWLAN_no2ghz_oui(t *testing.T) { }, Steps: []resource.TestStep{ { - Config: testAccWLANConfig_no2ghz_oui(subnet, vlan), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Config: testAccWLANConfig_no2ghz_oui(name, subnet, vlan), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), @@ -264,7 +277,9 @@ func TestAccWLAN_bss_transition(t *testing.T) { } func TestAccWLAN_uapsd(t *testing.T) { + name := acctest.RandomWithPrefix("tfacc") subnet, vlan := getTestVLAN(t) + resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { preCheck(t) }, ProviderFactories: providerFactories, @@ -275,9 +290,9 @@ func TestAccWLAN_uapsd(t *testing.T) { }, Steps: []resource.TestStep{ { - Config: testAccWLANConfig_uapsd(subnet, vlan), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Config: testAccWLANConfig_uapsd(name, subnet, vlan), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), @@ -310,7 +325,9 @@ func TestAccWLAN_fast_roaming_enabled(t *testing.T) { } func TestAccWLAN_wpa3(t *testing.T) { + name := acctest.RandomWithPrefix("tfacc") subnet, vlan := getTestVLAN(t) + resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { preCheck(t) @@ -324,23 +341,23 @@ func TestAccWLAN_wpa3(t *testing.T) { }, Steps: []resource.TestStep{ { - Config: testAccWLANConfig_wpa3(subnet, vlan, false, "required"), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Config: testAccWLANConfig_wpa3(name, subnet, vlan, false, "required"), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), { - Config: testAccWLANConfig_wpa3(subnet, vlan, true, "optional"), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Config: testAccWLANConfig_wpa3(name, subnet, vlan, true, "optional"), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), { - Config: testAccWLANConfig_wpa3(subnet, vlan, false, "required"), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Config: testAccWLANConfig_wpa3(name, subnet, vlan, false, "required"), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), @@ -349,7 +366,9 @@ func TestAccWLAN_wpa3(t *testing.T) { } func TestAccWLAN_minimum_data_rate(t *testing.T) { + name := acctest.RandomWithPrefix("tfacc") subnet, vlan := getTestVLAN(t) + resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { preCheck(t) }, ProviderFactories: providerFactories, @@ -360,37 +379,37 @@ func TestAccWLAN_minimum_data_rate(t *testing.T) { }, Steps: []resource.TestStep{ { - Config: testAccWLANConfig_minimum_data_rate(subnet, vlan, 5500, 18000), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Config: testAccWLANConfig_minimum_data_rate(name, subnet, vlan, 5500, 18000), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), { - Config: testAccWLANConfig_minimum_data_rate(subnet, vlan, 1000, 18000), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Config: testAccWLANConfig_minimum_data_rate(name, subnet, vlan, 1000, 18000), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), { - Config: testAccWLANConfig_minimum_data_rate(subnet, vlan, 0, 0), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Config: testAccWLANConfig_minimum_data_rate(name, subnet, vlan, 0, 0), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), { - Config: testAccWLANConfig_minimum_data_rate(subnet, vlan, 6000, 9000), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Config: testAccWLANConfig_minimum_data_rate(name, subnet, vlan, 6000, 9000), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), { - Config: testAccWLANConfig_minimum_data_rate(subnet, vlan, 18000, 6000), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Config: testAccWLANConfig_minimum_data_rate(name, subnet, vlan, 18000, 6000), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), @@ -398,21 +417,24 @@ func TestAccWLAN_minimum_data_rate(t *testing.T) { }) } -func testAccWLANConfig_wpapsk(subnet *net.IPNet, vlan int, pmf string) string { +func testAccWLANBaseConfig(name string, subnet *net.IPNet, vlan int) string { return fmt.Sprintf(` data "unifi_ap_group" "default" {} data "unifi_user_group" "default" {} resource "unifi_network" "test" { - name = "tfacc" + name = "%[1]s" purpose = "corporate" - subnet = "%[1]s" - vlan_id = %[2]d + subnet = "%[2]s" + vlan_id = "%[3]d" +}`, name, subnet, vlan) } +func testAccWLANConfig_wpapsk(name string, subnet *net.IPNet, vlan int, pmf string) string { + return testAccWLANBaseConfig(name, subnet, vlan) + fmt.Sprintf(` resource "unifi_wlan" "test" { - name = "tfacc-wpapsk" + name = "%[1]s-wpapsk" network_id = unifi_network.test.id passphrase = "12345678" ap_group_ids = [data.unifi_ap_group.default.id] @@ -421,17 +443,13 @@ resource "unifi_wlan" "test" { multicast_enhance = true - pmf_mode = %[3]q + pmf_mode = %[2]q } -`, subnet, vlan, pmf) +`, name, pmf) } -func testAccWLANConfig_wpaeap(subnet *net.IPNet, vlan int) string { - return fmt.Sprintf(` -data "unifi_ap_group" "default" {} - -data "unifi_user_group" "default" {} - +func testAccWLANConfig_wpaeap(name string, subnet *net.IPNet, vlan int) string { + return testAccWLANBaseConfig(name, subnet, vlan) + fmt.Sprintf(` data "unifi_radius_profile" "default" {} resource "unifi_setting_radius" "this" { @@ -439,15 +457,8 @@ resource "unifi_setting_radius" "this" { secret = "securepw" } -resource "unifi_network" "test" { - name = "tfacc" - purpose = "corporate" - subnet = "%[1]s" - vlan_id = %[2]d -} - resource "unifi_wlan" "test" { - name = "tfacc-wpapsk" + name = "%[1]s-wpapsk" network_id = unifi_network.test.id passphrase = "12345678" ap_group_ids = [data.unifi_ap_group.default.id] @@ -456,47 +467,25 @@ resource "unifi_wlan" "test" { radius_profile_id = data.unifi_radius_profile.default.id } -`, subnet, vlan) -} - -func testAccWLANConfig_open(subnet *net.IPNet, vlan int) string { - return fmt.Sprintf(` -data "unifi_ap_group" "default" {} - -data "unifi_user_group" "default" {} - -resource "unifi_network" "test" { - name = "tfacc" - purpose = "corporate" - subnet = "%[1]s" - vlan_id = %[2]d +`, name) } +func testAccWLANConfig_open(name string, subnet *net.IPNet, vlan int) string { + return testAccWLANBaseConfig(name, subnet, vlan) + fmt.Sprintf(` resource "unifi_wlan" "test" { - name = "tfacc-open" + name = "%[1]s-open" network_id = unifi_network.test.id ap_group_ids = [data.unifi_ap_group.default.id] user_group_id = data.unifi_user_group.default.id security = "open" } -`, subnet, vlan) -} - -func testAccWLANConfig_schedule(subnet *net.IPNet, vlan int) string { - return fmt.Sprintf(` -data "unifi_ap_group" "default" {} - -data "unifi_user_group" "default" {} - -resource "unifi_network" "test" { - name = "tfacc" - purpose = "corporate" - subnet = "%[1]s" - vlan_id = %[2]d +`, name) } +func testAccWLANConfig_schedule(name string, subnet *net.IPNet, vlan int) string { + return testAccWLANBaseConfig(name, subnet, vlan) + fmt.Sprintf(` resource "unifi_wlan" "test" { - name = "tfacc-open-schedule" + name = "%[1]s-sched" network_id = unifi_network.test.id ap_group_ids = [data.unifi_ap_group.default.id] user_group_id = data.unifi_user_group.default.id @@ -528,24 +517,13 @@ resource "unifi_wlan" "test" { duration = 60*1 } } -`, subnet, vlan) -} - -func testAccWLANConfig_open_mac_filter(subnet *net.IPNet, vlan int) string { - return fmt.Sprintf(` -data "unifi_ap_group" "default" {} - -data "unifi_user_group" "default" {} - -resource "unifi_network" "test" { - name = "tfacc" - purpose = "corporate" - subnet = "%[1]s" - vlan_id = %[2]d +`, name) } +func testAccWLANConfig_open_mac_filter(name string, subnet *net.IPNet, vlan int) string { + return testAccWLANBaseConfig(name, subnet, vlan) + fmt.Sprintf(` resource "unifi_wlan" "test" { - name = "tfacc-open" + name = "%[1]s-open" network_id = unifi_network.test.id ap_group_ids = [data.unifi_ap_group.default.id] user_group_id = data.unifi_user_group.default.id @@ -555,24 +533,13 @@ resource "unifi_wlan" "test" { mac_filter_list = ["ab:cd:ef:12:34:56"] mac_filter_policy = "allow" } -`, subnet, vlan) -} - -func testAccWLANConfig_wlan_band(subnet *net.IPNet, vlan int) string { - return fmt.Sprintf(` -data "unifi_ap_group" "default" {} - -data "unifi_user_group" "default" {} - -resource "unifi_network" "test" { - name = "tfacc" - purpose = "corporate" - subnet = "%[1]s" - vlan_id = %[2]d +`, name) } +func testAccWLANConfig_wlan_band(name string, subnet *net.IPNet, vlan int) string { + return testAccWLANBaseConfig(name, subnet, vlan) + fmt.Sprintf(` resource "unifi_wlan" "test" { - name = "tfacc-wpapsk" + name = "%[1]s-wpapsk" network_id = unifi_network.test.id passphrase = "12345678" ap_group_ids = [data.unifi_ap_group.default.id] @@ -581,24 +548,13 @@ resource "unifi_wlan" "test" { wlan_band = "5g" multicast_enhance = true } -`, subnet, vlan) -} - -func testAccWLANConfig_no2ghz_oui(subnet *net.IPNet, vlan int) string { - return fmt.Sprintf(` -data "unifi_ap_group" "default" {} - -data "unifi_user_group" "default" {} - -resource "unifi_network" "test" { - name = "tfacc" - purpose = "corporate" - subnet = "%[1]s" - vlan_id = %[2]d +`, name) } +func testAccWLANConfig_no2ghz_oui(name string, subnet *net.IPNet, vlan int) string { + return testAccWLANBaseConfig(name, subnet, vlan) + fmt.Sprintf(` resource "unifi_wlan" "test" { - name = "tfacc-wpapsk" + name = "%[1]s-wpapsk" network_id = unifi_network.test.id passphrase = "12345678" ap_group_ids = [data.unifi_ap_group.default.id] @@ -607,74 +563,41 @@ resource "unifi_wlan" "test" { no2ghz_oui = false multicast_enhance = true } -`, subnet, vlan) +`, name) } func testAccWLANConfig_proxy_arp(name string, subnet *net.IPNet, vlan int, proxyArp bool) string { - return fmt.Sprintf(` -data "unifi_ap_group" "default" {} - -data "unifi_user_group" "default" {} - -resource "unifi_network" "test" { - name = "%[1]s" - purpose = "corporate" - subnet = "%[2]s" - vlan_id = %[3]d -} - + return testAccWLANBaseConfig(name, subnet, vlan) + fmt.Sprintf(` resource "unifi_wlan" "test" { name = "%[1]s" network_id = unifi_network.test.id passphrase = "12345678" - ap_group_ids = [data.unifi_ap_group.default.id] - user_group_id = data.unifi_user_group.default.id + ap_group_ids = [data.unifi_ap_group.default.id] + user_group_id = data.unifi_user_group.default.id security = "wpapsk" - proxy_arp = %[4]t + proxy_arp = %[2]t } -`, name, subnet, vlan, proxyArp) +`, name, proxyArp) } func testAccWLANConfig_bss_transition(name string, subnet *net.IPNet, vlan int, bssTransition bool) string { - return fmt.Sprintf(` -data "unifi_ap_group" "default" {} - -data "unifi_user_group" "default" {} - -resource "unifi_network" "test" { - name = "%[1]s" - purpose = "corporate" - subnet = "%[2]s" - vlan_id = %[3]d -} - + return testAccWLANBaseConfig(name, subnet, vlan) + fmt.Sprintf(` resource "unifi_wlan" "test" { name = "%[1]s" network_id = unifi_network.test.id passphrase = "12345678" - ap_group_ids = [data.unifi_ap_group.default.id] - user_group_id = data.unifi_user_group.default.id + ap_group_ids = [data.unifi_ap_group.default.id] + user_group_id = data.unifi_user_group.default.id security = "wpapsk" - bss_transition = %[4]t + bss_transition = %[2]t } -`, name, subnet, vlan, bssTransition) -} - -func testAccWLANConfig_uapsd(subnet *net.IPNet, vlan int) string { - return fmt.Sprintf(` -data "unifi_ap_group" "default" {} - -data "unifi_user_group" "default" {} - -resource "unifi_network" "test" { - name = "tfacc" - purpose = "corporate" - subnet = "%[1]s" - vlan_id = %[2]d +`, name, bssTransition) } +func testAccWLANConfig_uapsd(name string, subnet *net.IPNet, vlan int) string { + return testAccWLANBaseConfig(name, subnet, vlan) + fmt.Sprintf(` resource "unifi_wlan" "test" { - name = "tfacc-wpapsk" + name = "%[1]s-wpapsk" network_id = unifi_network.test.id passphrase = "12345678" ap_group_ids = [data.unifi_ap_group.default.id] @@ -682,49 +605,27 @@ resource "unifi_wlan" "test" { security = "wpapsk" uapsd = true } -`, subnet, vlan) +`, name) } func testAccWLANConfig_fast_roaming_enabled(name string, subnet *net.IPNet, vlan int, fastRoamingEnabled bool) string { - return fmt.Sprintf(` -data "unifi_ap_group" "default" {} - -data "unifi_user_group" "default" {} - -resource "unifi_network" "test" { - name = "%[1]s" - purpose = "corporate" - subnet = "%[2]s" - vlan_id = %[3]d -} - + return testAccWLANBaseConfig(name, subnet, vlan) + fmt.Sprintf(` resource "unifi_wlan" "test" { name = "%[1]s" network_id = unifi_network.test.id passphrase = "12345678" - ap_group_ids = [data.unifi_ap_group.default.id] - user_group_id = data.unifi_user_group.default.id + ap_group_ids = [data.unifi_ap_group.default.id] + user_group_id = data.unifi_user_group.default.id security = "wpapsk" - fast_roaming_enabled = %[4]t + fast_roaming_enabled = %[2]t } -`, name, subnet, vlan, fastRoamingEnabled) -} - -func testAccWLANConfig_wpa3(subnet *net.IPNet, vlan int, wpa3Transition bool, pmf string) string { - return fmt.Sprintf(` -data "unifi_ap_group" "default" {} - -data "unifi_user_group" "default" {} - -resource "unifi_network" "test" { - name = "tfacc" - purpose = "corporate" - subnet = "%[1]s" - vlan_id = %[2]d +`, name, fastRoamingEnabled) } +func testAccWLANConfig_wpa3(name string, subnet *net.IPNet, vlan int, wpa3Transition bool, pmf string) string { + return testAccWLANBaseConfig(name, subnet, vlan) + fmt.Sprintf(` resource "unifi_wlan" "test" { - name = "tfacc-wpapsk" + name = "%[1]s-wpapsk" network_id = unifi_network.test.id passphrase = "12345678" ap_group_ids = [data.unifi_ap_group.default.id] @@ -732,27 +633,16 @@ resource "unifi_wlan" "test" { security = "wpapsk" wpa3_support = true - wpa3_transition = %[3]t - pmf_mode = %[4]q + wpa3_transition = %[2]t + pmf_mode = %[3]q } -`, subnet, vlan, wpa3Transition, pmf) -} - -func testAccWLANConfig_minimum_data_rate(subnet *net.IPNet, vlan int, min2g int, min5g int) string { - return fmt.Sprintf(` -data "unifi_ap_group" "default" {} - -data "unifi_user_group" "default" {} - -resource "unifi_network" "test" { - name = "tfacc" - purpose = "corporate" - subnet = "%[1]s" - vlan_id = %[2]d +`, name, wpa3Transition, pmf) } +func testAccWLANConfig_minimum_data_rate(name string, subnet *net.IPNet, vlan int, min2g int, min5g int) string { + return testAccWLANBaseConfig(name, subnet, vlan) + fmt.Sprintf(` resource "unifi_wlan" "test" { - name = "tfacc-wpapsk" + name = "%[1]s-wpapsk" network_id = unifi_network.test.id passphrase = "12345678" ap_group_ids = [data.unifi_ap_group.default.id] @@ -761,8 +651,8 @@ resource "unifi_wlan" "test" { multicast_enhance = true - minimum_data_rate_2g_kbps = %[3]d - minimum_data_rate_5g_kbps = %[4]d + minimum_data_rate_2g_kbps = %[2]d + minimum_data_rate_5g_kbps = %[3]d } -`, subnet, vlan, min2g, min5g) +`, name, min2g, min5g) } From 6e6991d2272a94adbebba4177ac45af51b4d4fb2 Mon Sep 17 00:00:00 2001 From: Mateusz Filipowicz Date: Tue, 21 Jan 2025 09:41:46 +0100 Subject: [PATCH 2/2] chore: set test parallelism to 2 from 4 due to too high parallelism causing "text file busy" issue --- Makefile | 2 +- internal/provider/resource_wlan_test.go | 92 ++++++++++++------------- 2 files changed, 47 insertions(+), 47 deletions(-) diff --git a/Makefile b/Makefile index c8a21ab..de029e8 100644 --- a/Makefile +++ b/Makefile @@ -12,4 +12,4 @@ build: .PHONY: testacc testacc: - TF_ACC=1 go test $(TEST) -v -count $(TEST_COUNT) -timeout $(TEST_TIMEOUT) $(TESTARGS) + TF_ACC=1 go test $(TEST) -test.parallel 2 -v -count $(TEST_COUNT) -timeout $(TEST_TIMEOUT) $(TESTARGS) diff --git a/internal/provider/resource_wlan_test.go b/internal/provider/resource_wlan_test.go index bd61d63..5cb0943 100644 --- a/internal/provider/resource_wlan_test.go +++ b/internal/provider/resource_wlan_test.go @@ -25,8 +25,8 @@ func TestAccWLAN_wpapsk(t *testing.T) { Steps: []resource.TestStep{ { Config: testAccWLANConfig_wpapsk(name, subnet, vlan, "disabled"), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), @@ -49,22 +49,22 @@ func TestAccWLAN_open(t *testing.T) { Steps: []resource.TestStep{ { Config: testAccWLANConfig_open(name, subnet, vlan), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), { Config: testAccWLANConfig_open_mac_filter(name, subnet, vlan), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), { Config: testAccWLANConfig_open(name, subnet, vlan), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), @@ -87,36 +87,36 @@ func TestAccWLAN_change_security_and_pmf(t *testing.T) { Steps: []resource.TestStep{ { Config: testAccWLANConfig_wpapsk(name, subnet, vlan, "disabled"), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), { Config: testAccWLANConfig_open(name, subnet, vlan), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), { Config: testAccWLANConfig_wpapsk(name, subnet, vlan, "optional"), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), { Config: testAccWLANConfig_wpapsk(name, subnet, vlan, "required"), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), { Config: testAccWLANConfig_wpapsk(name, subnet, vlan, "disabled"), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), @@ -139,16 +139,16 @@ func TestAccWLAN_schedule(t *testing.T) { Steps: []resource.TestStep{ { Config: testAccWLANConfig_schedule(name, subnet, vlan), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), // remove schedule { Config: testAccWLANConfig_open(name, subnet, vlan), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), @@ -171,8 +171,8 @@ func TestAccWLAN_wpaeap(t *testing.T) { Steps: []resource.TestStep{ { Config: testAccWLANConfig_wpaeap(name, subnet, vlan), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), @@ -195,8 +195,8 @@ func TestAccWLAN_wlan_band(t *testing.T) { Steps: []resource.TestStep{ { Config: testAccWLANConfig_wlan_band(name, subnet, vlan), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), @@ -219,8 +219,8 @@ func TestAccWLAN_no2ghz_oui(t *testing.T) { Steps: []resource.TestStep{ { Config: testAccWLANConfig_no2ghz_oui(name, subnet, vlan), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), @@ -291,8 +291,8 @@ func TestAccWLAN_uapsd(t *testing.T) { Steps: []resource.TestStep{ { Config: testAccWLANConfig_uapsd(name, subnet, vlan), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), @@ -342,22 +342,22 @@ func TestAccWLAN_wpa3(t *testing.T) { Steps: []resource.TestStep{ { Config: testAccWLANConfig_wpa3(name, subnet, vlan, false, "required"), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), { Config: testAccWLANConfig_wpa3(name, subnet, vlan, true, "optional"), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), { Config: testAccWLANConfig_wpa3(name, subnet, vlan, false, "required"), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), @@ -380,36 +380,36 @@ func TestAccWLAN_minimum_data_rate(t *testing.T) { Steps: []resource.TestStep{ { Config: testAccWLANConfig_minimum_data_rate(name, subnet, vlan, 5500, 18000), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), { Config: testAccWLANConfig_minimum_data_rate(name, subnet, vlan, 1000, 18000), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), { Config: testAccWLANConfig_minimum_data_rate(name, subnet, vlan, 0, 0), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), { Config: testAccWLANConfig_minimum_data_rate(name, subnet, vlan, 6000, 9000), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"), { Config: testAccWLANConfig_minimum_data_rate(name, subnet, vlan, 18000, 6000), - Check: resource.ComposeTestCheckFunc( - // testCheckNetworkExists(t, "name"), + Check: resource.ComposeTestCheckFunc( + // testCheckNetworkExists(t, "name"), ), }, importStep("unifi_wlan.test"),