Skip to content

Commit 4d24261

Browse files
authored
Optimize Private Ip tests (#304)
* These tests were taking ~23 minutes, consolidated steps to get ~6 minutes * Begin test helpers for systematic approach to test fixture definitions * Test Provider definition that properly reads in env variables
1 parent fa76459 commit 4d24261

File tree

4 files changed

+173
-206
lines changed

4 files changed

+173
-206
lines changed

data_source_obmcs_core_private_ip_test.go

Lines changed: 33 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -19,26 +19,29 @@ type DatasourcePrivateIPTestSuite struct {
1919
Provider terraform.ResourceProvider
2020
Providers map[string]terraform.ResourceProvider
2121
ResourceName string
22-
List *baremetal.ListPrivateIPs
2322
}
2423

2524
func (s *DatasourcePrivateIPTestSuite) SetupTest() {
2625
s.Client = testAccClient
2726
s.Provider = testAccProvider
2827
s.Providers = testAccProviders
29-
s.Config = vnicConfig + `
30-
resource "oci_core_private_ip" "testPrivateIP" {
31-
vnic_id = "${lookup(data.oci_core_vnic_attachments.vnics.vnic_attachments[0],"vnic_id")}"
32-
ip_address = "10.0.1.23"
33-
}
34-
`
35-
s.Config += testProviderConfig()
36-
s.ResourceName = "data.oci_core_private_ips.testPrivateIPs"
37-
}
28+
s.Config = testProvider1() + testADs() + testVCN1() + testSubnet1() + testImage1() + testInstance1() + `
29+
data "oci_core_vnic_attachments" "t" {
30+
compartment_id = "${var.compartment_ocid}"
31+
availability_domain = "${data.oci_identity_availability_domains.t.availability_domains.0.name}"
32+
instance_id = "${oci_core_instance.t.id}"
33+
}
34+
35+
resource "oci_core_private_ip" "t" {
36+
vnic_id = "${lookup(data.oci_core_vnic_attachments.t.vnic_attachments[0], "vnic_id")}"
37+
ip_address = "10.0.1.23"
38+
}`
3839

39-
func (s *DatasourcePrivateIPTestSuite) TestListPrivateIPsByVnicID() {
40+
s.ResourceName = "data.oci_core_private_ips.t"
41+
}
4042

41-
resource.UnitTest(s.T(), resource.TestCase{
43+
func (s *DatasourcePrivateIPTestSuite) TestAccCorePrivateIPs_basic() {
44+
resource.Test(s.T(), resource.TestCase{
4245
PreventPostDestroyRefresh: true,
4346
Providers: s.Providers,
4447
Steps: []resource.TestStep{
@@ -47,80 +50,48 @@ func (s *DatasourcePrivateIPTestSuite) TestListPrivateIPsByVnicID() {
4750
ImportStateVerify: true,
4851
Config: s.Config,
4952
},
53+
// list by ip address
5054
{
5155
Config: s.Config + `
52-
data "oci_core_private_ips" "testPrivateIPs" {
53-
vnic_id = "${lookup(data.oci_core_vnic_attachments.vnics.vnic_attachments[0],"vnic_id")}"
54-
}
55-
`,
56+
data "oci_core_private_ips" "t" {
57+
ip_address = "10.0.1.23"
58+
subnet_id = "${oci_core_subnet.t.id}"
59+
}`,
5660
Check: resource.ComposeTestCheckFunc(
57-
resource.TestCheckResourceAttr(s.ResourceName, "private_ips.#", "2"),
5861
resource.TestCheckResourceAttrSet(s.ResourceName, "private_ips.0.id"),
59-
resource.TestCheckResourceAttrSet(s.ResourceName, "private_ips.1.id"),
62+
resource.TestCheckResourceAttr(s.ResourceName, "private_ips.#", "1"),
63+
resource.TestCheckResourceAttr(s.ResourceName, "private_ips.0.ip_address", "10.0.1.23"),
6064
),
6165
},
62-
},
63-
},
64-
)
65-
}
66-
67-
func (s *DatasourcePrivateIPTestSuite) TestListPrivateIPsBySubnetID() {
68-
69-
resource.UnitTest(s.T(), resource.TestCase{
70-
PreventPostDestroyRefresh: true,
71-
Providers: s.Providers,
72-
Steps: []resource.TestStep{
73-
{
74-
ImportState: true,
75-
ImportStateVerify: true,
76-
Config: s.Config,
77-
},
66+
// list by vnic id
7867
{
7968
Config: s.Config + `
80-
data "oci_core_private_ips" "testPrivateIPs" {
81-
subnet_id = "${oci_core_subnet.WebSubnetAD1.id}"
82-
}
83-
`,
69+
data "oci_core_private_ips" "t" {
70+
vnic_id = "${lookup(data.oci_core_vnic_attachments.t.vnic_attachments[0],"vnic_id")}"
71+
}`,
8472
Check: resource.ComposeTestCheckFunc(
8573
resource.TestCheckResourceAttr(s.ResourceName, "private_ips.#", "2"),
8674
resource.TestCheckResourceAttrSet(s.ResourceName, "private_ips.0.id"),
8775
resource.TestCheckResourceAttrSet(s.ResourceName, "private_ips.1.id"),
8876
),
8977
},
90-
},
91-
},
92-
)
93-
}
94-
95-
func (s *DatasourcePrivateIPTestSuite) TestListPrivateIPsByIPAddress() {
96-
97-
resource.UnitTest(s.T(), resource.TestCase{
98-
PreventPostDestroyRefresh: true,
99-
Providers: s.Providers,
100-
Steps: []resource.TestStep{
101-
{
102-
ImportState: true,
103-
ImportStateVerify: true,
104-
Config: s.Config,
105-
},
78+
// list by subnet id
10679
{
10780
Config: s.Config + `
108-
data "oci_core_private_ips" "testPrivateIPs" {
109-
ip_address = "10.0.1.23"
110-
subnet_id = "${oci_core_subnet.WebSubnetAD1.id}"
111-
}
112-
`,
81+
data "oci_core_private_ips" "t" {
82+
subnet_id = "${oci_core_subnet.t.id}"
83+
}`,
11384
Check: resource.ComposeTestCheckFunc(
85+
resource.TestCheckResourceAttr(s.ResourceName, "private_ips.#", "2"),
11486
resource.TestCheckResourceAttrSet(s.ResourceName, "private_ips.0.id"),
115-
resource.TestCheckResourceAttr(s.ResourceName, "private_ips.0.ip_address", "10.0.1.23"),
116-
resource.TestCheckResourceAttr(s.ResourceName, "private_ips.#", "1"),
87+
resource.TestCheckResourceAttrSet(s.ResourceName, "private_ips.1.id"),
11788
),
11889
},
11990
},
12091
},
12192
)
12293
}
12394

124-
func TestDatasourcePrivateIPTestSuite(t *testing.T) {
95+
func TestDatasourceCorePrivateIPTestSuite(t *testing.T) {
12596
suite.Run(t, new(DatasourcePrivateIPTestSuite))
12697
}

provider_test.go

Lines changed: 0 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -82,14 +82,6 @@ resource "oci_core_subnet" "WebSubnetAD1" {
8282
dhcp_options_id = "${oci_core_virtual_network.t.default_dhcp_options_id}"
8383
}`
8484

85-
var imageConf = `
86-
data "oci_core_images" "t" {
87-
compartment_id = "${var.compartment_id}"
88-
operating_system = "Oracle Linux"
89-
operating_system_version = "7.3"
90-
limit = 1
91-
}`
92-
9385
var instanceConfig = subnetConfig + `
9486
data "oci_core_images" "t" {
9587
compartment_id = "${var.compartment_id}"
@@ -128,13 +120,6 @@ resource "oci_core_instance" "t" {
128120
}
129121
}
130122
`
131-
var vnicConfig = instanceConfig + `
132-
data "oci_core_vnic_attachments" "vnics" {
133-
compartment_id = "${var.compartment_id}"
134-
availability_domain = "${data.oci_identity_availability_domains.ADs.availability_domains.0.name}"
135-
instance_id = "${oci_core_instance.t.id}"
136-
}
137-
`
138123

139124
var instanceDnsConfig = `
140125
data "oci_identity_availability_domains" "ADs" {
@@ -187,40 +172,6 @@ resource "oci_core_instance" "t" {
187172
}
188173
`
189174

190-
var certificateConfig = `
191-
resource "oci_load_balancer_certificate" "t" {
192-
load_balancer_id = "${oci_load_balancer.t.id}"
193-
ca_certificate = "-----BEGIN CERTIFICATE-----\nMIIBNzCB4gIJAKtwJkxUgNpzMA0GCSqGSIb3DQEBCwUAMCMxITAfBgNVBAoTGElu\ndGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0xNzA0MTIyMTU3NTZaFw0xODA0MTIy\nMTU3NTZaMCMxITAfBgNVBAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDBcMA0G\nCSqGSIb3DQEBAQUAA0sAMEgCQQDlM8lz3BFJA6zBlsF63k9ajPVq3Q1WQoHQ3j35\n08DRKIfwqfV+CxL63W3dZrwL4TrjqorP5CQ36+I6OWALH2zVAgMBAAEwDQYJKoZI\nhvcNAQELBQADQQCEjHVQJoiiVpIIvDWF+4YDRReVuwzrvq2xduWw7CIsDWlYuGZT\nQKVY6tnTy2XpoUk0fqUvMB/M2HGQ1WqZGHs6\n-----END CERTIFICATE-----"
194-
certificate_name = "stub_certificate_name"
195-
private_key = "-----BEGIN RSA PRIVATE KEY-----\nMIIBOgIBAAJBAOUzyXPcEUkDrMGWwXreT1qM9WrdDVZCgdDePfnTwNEoh/Cp9X4L\nEvrdbd1mvAvhOuOqis/kJDfr4jo5YAsfbNUCAwEAAQJAJz8k4bfvJceBT2zXGIj0\noZa9d1z+qaSdwfwsNJkzzRyGkj/j8yv5FV7KNdSfsBbStlcuxUm4i9o5LXhIA+iQ\ngQIhAPzStAN8+Rz3dWKTjRWuCfy+Pwcmyjl3pkMPSiXzgSJlAiEA6BUZWHP0b542\nu8AizBT3b3xKr1AH2nkIx9OHq7F/QbECIHzqqpDypa8/QVuUZegpVrvvT/r7mn1s\nddS6cDtyJgLVAiEA1Z5OFQeuL2sekBRbMyP9WOW7zMBKakLL3TqL/3JCYxECIAkG\nl96uo1MjK/66X5zQXBG7F2DN2CbcYEz0r3c3vvfq\n-----END RSA PRIVATE KEY-----"
196-
public_certificate = "-----BEGIN CERTIFICATE-----\nMIIBNzCB4gIJAKtwJkxUgNpzMA0GCSqGSIb3DQEBCwUAMCMxITAfBgNVBAoTGElu\ndGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0xNzA0MTIyMTU3NTZaFw0xODA0MTIy\nMTU3NTZaMCMxITAfBgNVBAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDBcMA0G\nCSqGSIb3DQEBAQUAA0sAMEgCQQDlM8lz3BFJA6zBlsF63k9ajPVq3Q1WQoHQ3j35\n08DRKIfwqfV+CxL63W3dZrwL4TrjqorP5CQ36+I6OWALH2zVAgMBAAEwDQYJKoZI\nhvcNAQELBQADQQCEjHVQJoiiVpIIvDWF+4YDRReVuwzrvq2xduWw7CIsDWlYuGZT\nQKVY6tnTy2XpoUk0fqUvMB/M2HGQ1WqZGHs6\n-----END CERTIFICATE-----"
197-
}
198-
`
199-
200-
var loadbalancerConfig = subnetConfig + `
201-
202-
resource "oci_core_subnet" "WebSubnetAD2" {
203-
availability_domain = "${data.oci_identity_availability_domains.ADs.availability_domains.1.name}"
204-
cidr_block = "10.0.2.0/24"
205-
display_name = "WebSubnetAD2"
206-
compartment_id = "${var.compartment_id}"
207-
vcn_id = "${oci_core_virtual_network.t.id}"
208-
route_table_id = "${oci_core_virtual_network.t.default_route_table_id}"
209-
security_list_ids = ["${oci_core_virtual_network.t.default_security_list_id}"]
210-
dhcp_options_id = "${oci_core_virtual_network.t.default_dhcp_options_id}"
211-
}
212-
213-
data "oci_load_balancer_shapes" "t" {
214-
compartment_id = "${var.compartment_id}"
215-
}
216-
resource "oci_load_balancer" "t" {
217-
shape = "${data.oci_load_balancer_shapes.t.shapes.0.name}"
218-
compartment_id = "${var.compartment_id}"
219-
display_name = "lb_display_name"
220-
subnet_ids = ["${oci_core_subnet.WebSubnetAD1.id}", "${oci_core_subnet.WebSubnetAD2.id}"]
221-
}
222-
`
223-
224175
var databaseConfig = subnetConfig + `
225176
variable "DBNodeShape" {
226177
default = "BM.DenseIO1.36"

0 commit comments

Comments
 (0)