Skip to content

Commit 79b1324

Browse files
committed
acceptance: Add 'RequireNeutronExtension' helper
Skip neutron tests if the relevant extension is not available in our environment. We migrate existing variations of this to the new helper and add some for tests that depend on neutron's 'fwaas_v2' extension (though not for fwaas v1, since those tests are all already skipped and should be removed in a separate change). Signed-off-by: Stephen Finucane <[email protected]>
1 parent 84534a1 commit 79b1324

File tree

13 files changed

+72
-94
lines changed

13 files changed

+72
-94
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package v2
2+
3+
import (
4+
"context"
5+
"testing"
6+
7+
"github.com/gophercloud/gophercloud/v2"
8+
"github.com/gophercloud/gophercloud/v2/openstack/common/extensions"
9+
)
10+
11+
// RequireNeutronExtension will restrict a test to be only run in environments
12+
// with the requested Neutron extension present.
13+
func RequireNeutronExtension(t *testing.T, client *gophercloud.ServiceClient, extension string) {
14+
_, err := extensions.Get(context.TODO(), client, extension).Extract()
15+
if err != nil {
16+
t.Skipf("this test requires %s Neutron extension", extension)
17+
}
18+
}

internal/acceptance/openstack/networking/v2/extensions/dns/dns_test.go

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import (
1111
networking "github.com/gophercloud/gophercloud/v2/internal/acceptance/openstack/networking/v2"
1212
"github.com/gophercloud/gophercloud/v2/internal/acceptance/openstack/networking/v2/extensions/layer3"
1313
"github.com/gophercloud/gophercloud/v2/internal/acceptance/tools"
14-
"github.com/gophercloud/gophercloud/v2/openstack/common/extensions"
1514
"github.com/gophercloud/gophercloud/v2/openstack/networking/v2/extensions/dns"
1615
"github.com/gophercloud/gophercloud/v2/openstack/networking/v2/extensions/layer3/floatingips"
1716
"github.com/gophercloud/gophercloud/v2/openstack/networking/v2/networks"
@@ -26,11 +25,8 @@ func TestDNSPortCRUDL(t *testing.T) {
2625
client, err := clients.NewNetworkV2Client()
2726
th.AssertNoErr(t, err)
2827

29-
extension, err := extensions.Get(context.TODO(), client, "dns-integration").Extract()
30-
if err != nil {
31-
t.Skip("This test requires dns-integration Neutron extension")
32-
}
33-
tools.PrintResource(t, extension)
28+
// Skip these tests if we don't have the required extension
29+
networking.RequireNeutronExtension(t, client, "dns-integration")
3430

3531
// Create Network
3632
networkDNSDomain := "local."
@@ -153,11 +149,8 @@ func TestDNSFloatingIPCRDL(t *testing.T) {
153149
client, err := clients.NewNetworkV2Client()
154150
th.AssertNoErr(t, err)
155151

156-
extension, err := extensions.Get(context.TODO(), client, "dns-integration").Extract()
157-
if err != nil {
158-
t.Skip("This test requires dns-integration Neutron extension")
159-
}
160-
tools.PrintResource(t, extension)
152+
// Skip these tests if we don't have the required extension
153+
networking.RequireNeutronExtension(t, client, "dns-integration")
161154

162155
choices, err := clients.AcceptanceTestChoicesFromEnv()
163156
th.AssertNoErr(t, err)
@@ -215,11 +208,8 @@ func TestDNSNetwork(t *testing.T) {
215208
client, err := clients.NewNetworkV2Client()
216209
th.AssertNoErr(t, err)
217210

218-
extension, err := extensions.Get(context.TODO(), client, "dns-integration").Extract()
219-
if err != nil {
220-
t.Skip("This test requires dns-integration Neutron extension")
221-
}
222-
tools.PrintResource(t, extension)
211+
// Skip these tests if we don't have the required extension
212+
networking.RequireNeutronExtension(t, client, "dns-integration")
223213

224214
// Create Network
225215
networkDNSDomain := "local."

internal/acceptance/openstack/networking/v2/extensions/fwaas_v2/groups_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"testing"
88

99
"github.com/gophercloud/gophercloud/v2/internal/acceptance/clients"
10+
networking "github.com/gophercloud/gophercloud/v2/internal/acceptance/openstack/networking/v2"
1011
"github.com/gophercloud/gophercloud/v2/internal/acceptance/tools"
1112
"github.com/gophercloud/gophercloud/v2/openstack/networking/v2/extensions/fwaas_v2/groups"
1213
th "github.com/gophercloud/gophercloud/v2/testhelper"
@@ -20,6 +21,9 @@ func TestGroupCRUD(t *testing.T) {
2021
client, err := clients.NewNetworkV2Client()
2122
th.AssertNoErr(t, err)
2223

24+
// Skip these tests if we don't have the required extension
25+
networking.RequireNeutronExtension(t, client, "fwaas_v2")
26+
2327
createdGroup, err := CreateGroup(t, client)
2428
th.AssertNoErr(t, err)
2529
defer DeleteGroup(t, client, createdGroup.ID)

internal/acceptance/openstack/networking/v2/extensions/fwaas_v2/policy_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"testing"
88

99
"github.com/gophercloud/gophercloud/v2/internal/acceptance/clients"
10+
networking "github.com/gophercloud/gophercloud/v2/internal/acceptance/openstack/networking/v2"
1011
"github.com/gophercloud/gophercloud/v2/internal/acceptance/tools"
1112
"github.com/gophercloud/gophercloud/v2/openstack/networking/v2/extensions/fwaas_v2/policies"
1213
th "github.com/gophercloud/gophercloud/v2/testhelper"
@@ -20,6 +21,9 @@ func TestPolicyCRUD(t *testing.T) {
2021
client, err := clients.NewNetworkV2Client()
2122
th.AssertNoErr(t, err)
2223

24+
// Skip these tests if we don't have the required extension
25+
networking.RequireNeutronExtension(t, client, "fwaas_v2")
26+
2327
// Create First Rule. This will be used as part of the Policy creation
2428
rule, err := CreateRule(t, client)
2529
th.AssertNoErr(t, err)

internal/acceptance/openstack/networking/v2/extensions/fwaas_v2/rule_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"testing"
1010

1111
"github.com/gophercloud/gophercloud/v2/internal/acceptance/clients"
12+
networking "github.com/gophercloud/gophercloud/v2/internal/acceptance/openstack/networking/v2"
1213
"github.com/gophercloud/gophercloud/v2/internal/acceptance/tools"
1314
"github.com/gophercloud/gophercloud/v2/openstack/networking/v2/extensions/fwaas_v2/rules"
1415
th "github.com/gophercloud/gophercloud/v2/testhelper"
@@ -22,6 +23,9 @@ func TestRuleCRUD(t *testing.T) {
2223
client, err := clients.NewNetworkV2Client()
2324
th.AssertNoErr(t, err)
2425

26+
// Skip these tests if we don't have the required extension
27+
networking.RequireNeutronExtension(t, client, "fwaas_v2")
28+
2529
rule, err := CreateRule(t, client)
2630
th.AssertNoErr(t, err)
2731
defer DeleteRule(t, client, rule.ID)

internal/acceptance/openstack/networking/v2/extensions/layer3/l3_scheduling_test.go

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,8 @@ import (
77
"testing"
88

99
"github.com/gophercloud/gophercloud/v2/internal/acceptance/clients"
10-
networking "github.com/gophercloud/gophercloud/v2/internal/acceptance/openstack/networking/v2"
10+
v2 "github.com/gophercloud/gophercloud/v2/internal/acceptance/openstack/networking/v2"
1111
"github.com/gophercloud/gophercloud/v2/internal/acceptance/tools"
12-
"github.com/gophercloud/gophercloud/v2/openstack/common/extensions"
1312
"github.com/gophercloud/gophercloud/v2/openstack/networking/v2/extensions/agents"
1413
"github.com/gophercloud/gophercloud/v2/openstack/networking/v2/extensions/layer3/routers"
1514
th "github.com/gophercloud/gophercloud/v2/testhelper"
@@ -19,18 +18,16 @@ func TestLayer3RouterScheduling(t *testing.T) {
1918
client, err := clients.NewNetworkV2Client()
2019
th.AssertNoErr(t, err)
2120

22-
_, err = extensions.Get(context.TODO(), client, "l3_agent_scheduler").Extract()
23-
if err != nil {
24-
t.Skip("Extension l3_agent_scheduler not present")
25-
}
21+
// Skip these tests if we don't have the required extension
22+
v2.RequireNeutronExtension(t, client, "l3_agent_scheduler")
2623

27-
network, err := networking.CreateNetwork(t, client)
24+
network, err := v2.CreateNetwork(t, client)
2825
th.AssertNoErr(t, err)
29-
defer networking.DeleteNetwork(t, client, network.ID)
26+
defer v2.DeleteNetwork(t, client, network.ID)
3027

31-
subnet, err := networking.CreateSubnet(t, client, network.ID)
28+
subnet, err := v2.CreateSubnet(t, client, network.ID)
3229
th.AssertNoErr(t, err)
33-
defer networking.DeleteSubnet(t, client, subnet.ID)
30+
defer v2.DeleteSubnet(t, client, subnet.ID)
3431

3532
router, err := CreateRouter(t, client, network.ID)
3633
th.AssertNoErr(t, err)

internal/acceptance/openstack/networking/v2/extensions/mtu/mtu_test.go

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,8 @@ func TestMTUNetworkCRUDL(t *testing.T) {
2222
client, err := clients.NewNetworkV2Client()
2323
th.AssertNoErr(t, err)
2424

25-
extension, err := extensions.Get(context.TODO(), client, "net-mtu").Extract()
26-
if err != nil {
27-
t.Skip("This test requires net-mtu Neutron extension")
28-
}
29-
tools.PrintResource(t, extension)
25+
// Skip these tests if we don't have the required extension
26+
networking.RequireNeutronExtension(t, client, "net-mtu")
3027

3128
mtuWritable, _ := extensions.Get(context.TODO(), client, "net-mtu-writable").Extract()
3229
tools.PrintResource(t, mtuWritable)

internal/acceptance/openstack/networking/v2/extensions/qos/policies/policies_test.go

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import (
77
"testing"
88

99
"github.com/gophercloud/gophercloud/v2/internal/acceptance/clients"
10+
v2 "github.com/gophercloud/gophercloud/v2/internal/acceptance/openstack/networking/v2"
1011
"github.com/gophercloud/gophercloud/v2/internal/acceptance/tools"
11-
"github.com/gophercloud/gophercloud/v2/openstack/common/extensions"
1212
"github.com/gophercloud/gophercloud/v2/openstack/networking/v2/extensions/qos/policies"
1313
th "github.com/gophercloud/gophercloud/v2/testhelper"
1414
)
@@ -17,11 +17,8 @@ func TestPoliciesCRUD(t *testing.T) {
1717
client, err := clients.NewNetworkV2Client()
1818
th.AssertNoErr(t, err)
1919

20-
extension, err := extensions.Get(context.TODO(), client, "qos").Extract()
21-
if err != nil {
22-
t.Skip("This test requires qos Neutron extension")
23-
}
24-
tools.PrintResource(t, extension)
20+
// Skip these tests if we don't have the required extension
21+
v2.RequireNeutronExtension(t, client, "qos")
2522

2623
// Create a QoS policy.
2724
policy, err := CreateQoSPolicy(t, client)

internal/acceptance/openstack/networking/v2/extensions/qos/rules/rules_test.go

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ import (
77
"testing"
88

99
"github.com/gophercloud/gophercloud/v2/internal/acceptance/clients"
10+
v2 "github.com/gophercloud/gophercloud/v2/internal/acceptance/openstack/networking/v2"
1011
accpolicies "github.com/gophercloud/gophercloud/v2/internal/acceptance/openstack/networking/v2/extensions/qos/policies"
1112
"github.com/gophercloud/gophercloud/v2/internal/acceptance/tools"
12-
"github.com/gophercloud/gophercloud/v2/openstack/common/extensions"
1313
"github.com/gophercloud/gophercloud/v2/openstack/networking/v2/extensions/qos/policies"
1414
"github.com/gophercloud/gophercloud/v2/openstack/networking/v2/extensions/qos/rules"
1515
th "github.com/gophercloud/gophercloud/v2/testhelper"
@@ -19,11 +19,8 @@ func TestBandwidthLimitRulesCRUD(t *testing.T) {
1919
client, err := clients.NewNetworkV2Client()
2020
th.AssertNoErr(t, err)
2121

22-
extension, err := extensions.Get(context.TODO(), client, "qos").Extract()
23-
if err != nil {
24-
t.Skip("This test requires qos Neutron extension")
25-
}
26-
tools.PrintResource(t, extension)
22+
// Skip these tests if we don't have the required extension
23+
v2.RequireNeutronExtension(t, client, "qos")
2724

2825
// Create a QoS policy
2926
policy, err := accpolicies.CreateQoSPolicy(t, client)
@@ -68,11 +65,8 @@ func TestDSCPMarkingRulesCRUD(t *testing.T) {
6865
client, err := clients.NewNetworkV2Client()
6966
th.AssertNoErr(t, err)
7067

71-
extension, err := extensions.Get(context.TODO(), client, "qos").Extract()
72-
if err != nil {
73-
t.Skip("This test requires qos Neutron extension")
74-
}
75-
tools.PrintResource(t, extension)
68+
// Skip these tests if we don't have the required extension
69+
v2.RequireNeutronExtension(t, client, "qos")
7670

7771
// Create a QoS policy
7872
policy, err := accpolicies.CreateQoSPolicy(t, client)
@@ -117,11 +111,8 @@ func TestMinimumBandwidthRulesCRUD(t *testing.T) {
117111
client, err := clients.NewNetworkV2Client()
118112
th.AssertNoErr(t, err)
119113

120-
extension, err := extensions.Get(context.TODO(), client, "qos").Extract()
121-
if err != nil {
122-
t.Skip("This test requires qos Neutron extension")
123-
}
124-
tools.PrintResource(t, extension)
114+
// Skip these tests if we don't have the required extension
115+
v2.RequireNeutronExtension(t, client, "qos")
125116

126117
// Create a QoS policy
127118
policy, err := accpolicies.CreateQoSPolicy(t, client)

internal/acceptance/openstack/networking/v2/extensions/qos/ruletypes/ruletypes_test.go

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import (
77
"testing"
88

99
"github.com/gophercloud/gophercloud/v2/internal/acceptance/clients"
10+
networking "github.com/gophercloud/gophercloud/v2/internal/acceptance/openstack/networking/v2"
1011
"github.com/gophercloud/gophercloud/v2/internal/acceptance/tools"
11-
"github.com/gophercloud/gophercloud/v2/openstack/common/extensions"
1212
"github.com/gophercloud/gophercloud/v2/openstack/networking/v2/extensions/qos/ruletypes"
1313
)
1414

@@ -19,11 +19,8 @@ func TestRuleTypes(t *testing.T) {
1919
return
2020
}
2121

22-
extension, err := extensions.Get(context.TODO(), client, "qos").Extract()
23-
if err != nil {
24-
t.Skip("This test requires qos Neutron extension")
25-
}
26-
tools.PrintResource(t, extension)
22+
// Skip these tests if we don't have the required extension
23+
networking.RequireNeutronExtension(t, client, "qos")
2724

2825
page, err := ruletypes.ListRuleTypes(client).AllPages(context.TODO())
2926
if err != nil {

0 commit comments

Comments
 (0)