github.com/gophercloud/gophercloud@v1.11.0/internal/acceptance/openstack/db/v1/databases_test.go (about)

     1  //go:build acceptance || db
     2  // +build acceptance db
     3  
     4  package v1
     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/db/v1/databases"
    12  )
    13  
    14  // Because it takes so long to create an instance,
    15  // all tests will be housed in a single function.
    16  func TestDatabases(t *testing.T) {
    17  	if testing.Short() {
    18  		t.Skip("Skipping in short mode")
    19  	}
    20  
    21  	client, err := clients.NewDBV1Client()
    22  	if err != nil {
    23  		t.Fatalf("Unable to create a DB client: %v", err)
    24  	}
    25  
    26  	// Create and Get an instance.
    27  	instance, err := CreateInstance(t, client)
    28  	if err != nil {
    29  		t.Fatalf("Unable to create instance: %v", err)
    30  	}
    31  	defer DeleteInstance(t, client, instance.ID)
    32  
    33  	// Create a database.
    34  	err = CreateDatabase(t, client, instance.ID)
    35  	if err != nil {
    36  		t.Fatalf("Unable to create database: %v", err)
    37  	}
    38  
    39  	// List all databases.
    40  	allPages, err := databases.List(client, instance.ID).AllPages()
    41  	if err != nil {
    42  		t.Fatalf("Unable to list databases: %v", err)
    43  	}
    44  
    45  	allDatabases, err := databases.ExtractDBs(allPages)
    46  	if err != nil {
    47  		t.Fatalf("Unable to extract databases: %v", err)
    48  	}
    49  
    50  	for _, db := range allDatabases {
    51  		tools.PrintResource(t, db)
    52  	}
    53  
    54  	defer DeleteDatabase(t, client, instance.ID, allDatabases[0].Name)
    55  
    56  }