github.com/gophercloud/gophercloud@v1.11.0/internal/acceptance/openstack/networking/v2/extensions/qos/policies/policies_test.go (about) 1 //go:build acceptance || networking || qos || policies 2 // +build acceptance networking qos policies 3 4 package policies 5 6 import ( 7 "testing" 8 9 "github.com/gophercloud/gophercloud/internal/acceptance/clients" 10 "github.com/gophercloud/gophercloud/internal/acceptance/tools" 11 "github.com/gophercloud/gophercloud/openstack/common/extensions" 12 "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/qos/policies" 13 th "github.com/gophercloud/gophercloud/testhelper" 14 ) 15 16 func TestPoliciesCRUD(t *testing.T) { 17 client, err := clients.NewNetworkV2Client() 18 th.AssertNoErr(t, err) 19 20 extension, err := extensions.Get(client, "qos").Extract() 21 if err != nil { 22 t.Skip("This test requires qos Neutron extension") 23 } 24 tools.PrintResource(t, extension) 25 26 // Create a QoS policy. 27 policy, err := CreateQoSPolicy(t, client) 28 th.AssertNoErr(t, err) 29 defer DeleteQoSPolicy(t, client, policy.ID) 30 31 tools.PrintResource(t, policy) 32 33 newName := tools.RandomString("TESTACC-", 8) 34 newDescription := "" 35 updateOpts := &policies.UpdateOpts{ 36 Name: newName, 37 Description: &newDescription, 38 } 39 40 _, err = policies.Update(client, policy.ID, updateOpts).Extract() 41 th.AssertNoErr(t, err) 42 43 newPolicy, err := policies.Get(client, policy.ID).Extract() 44 th.AssertNoErr(t, err) 45 46 tools.PrintResource(t, newPolicy) 47 th.AssertEquals(t, newPolicy.Name, newName) 48 th.AssertEquals(t, newPolicy.Description, newDescription) 49 50 allPages, err := policies.List(client, nil).AllPages() 51 th.AssertNoErr(t, err) 52 53 allPolicies, err := policies.ExtractPolicies(allPages) 54 th.AssertNoErr(t, err) 55 56 var found bool 57 for _, policy := range allPolicies { 58 if policy.ID == newPolicy.ID { 59 found = true 60 } 61 } 62 63 th.AssertEquals(t, found, true) 64 }