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  }