github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/acceptance/openstack/identity/v3/token_test.go (about)

     1  package v3
     2  
     3  import (
     4  	"os"
     5  	"testing"
     6  
     7  	"github.com/opentelekomcloud/gophertelekomcloud/acceptance/clients"
     8  	"github.com/opentelekomcloud/gophertelekomcloud/openstack/identity/v3/tokens"
     9  	th "github.com/opentelekomcloud/gophertelekomcloud/testhelper"
    10  )
    11  
    12  func TestGetToken(t *testing.T) {
    13  	client, err := clients.NewIdentityV3Client()
    14  	th.AssertNoErr(t, err)
    15  
    16  	cc, err := clients.CloudAndClient()
    17  	th.AssertNoErr(t, err)
    18  
    19  	authOptions := tokens.AuthOptions{
    20  		UserID:     cc.ProviderClient.UserID,
    21  		Password:   cc.AuthInfo.Password,
    22  		DomainName: cc.AuthInfo.DomainName,
    23  		Passcode:   os.Getenv("OS_PASSCODE"),
    24  	}
    25  
    26  	if cc.AuthInfo.Password == "" {
    27  		t.Skip("password auth is required for this test")
    28  	}
    29  
    30  	result := tokens.Create(client, &authOptions)
    31  	token, err := result.Extract()
    32  	th.AssertNoErr(t, err)
    33  
    34  	_, err = tokens.Get(client, token.ID).ExtractServiceCatalog()
    35  	th.AssertNoErr(t, err)
    36  
    37  	user, err := tokens.Get(client, token.ID).ExtractUser()
    38  	th.AssertNoErr(t, err)
    39  	th.AssertEquals(t, authOptions.UserID, user.ID)
    40  
    41  	roles, err := tokens.Get(client, token.ID).ExtractRoles()
    42  	th.AssertNoErr(t, err)
    43  	if len(roles) == 0 {
    44  		t.Fatalf("user has no roles")
    45  	}
    46  
    47  	_, err = tokens.Get(client, token.ID).ExtractProject()
    48  	th.AssertNoErr(t, err)
    49  }