github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/acceptance/openstack/identity/v3/projects_test.go (about) 1 //go:build acceptance 2 // +build acceptance 3 4 package v3 5 6 import ( 7 "os" 8 "testing" 9 10 "github.com/opentelekomcloud/gophertelekomcloud/acceptance/clients" 11 "github.com/opentelekomcloud/gophertelekomcloud/acceptance/tools" 12 "github.com/opentelekomcloud/gophertelekomcloud/openstack/identity/v3/projects" 13 th "github.com/opentelekomcloud/gophertelekomcloud/testhelper" 14 ) 15 16 func TestProjectsList(t *testing.T) { 17 client, err := clients.NewIdentityV3Client() 18 th.AssertNoErr(t, err) 19 20 listOpts := projects.ListOpts{ 21 Name: os.Getenv("OS_PROJECT_NAME"), 22 } 23 24 allPages, err := projects.List(client, listOpts).AllPages() 25 th.AssertNoErr(t, err) 26 27 allProjects, err := projects.ExtractProjects(allPages) 28 th.AssertNoErr(t, err) 29 30 for _, project := range allProjects { 31 tools.PrintResource(t, project) 32 } 33 } 34 35 func TestProjectsGet(t *testing.T) { 36 client, err := clients.NewIdentityV3Client() 37 th.AssertNoErr(t, err) 38 opts := projects.ListOpts{ 39 Name: os.Getenv("OS_PROJECT_NAME"), 40 } 41 allPages, err := projects.List(client, opts).AllPages() 42 th.AssertNoErr(t, err) 43 44 allProjects, err := projects.ExtractProjects(allPages) 45 th.AssertNoErr(t, err) 46 47 project := allProjects[0] 48 p, err := projects.Get(client, project.ID).Extract() 49 th.AssertNoErr(t, err) 50 51 tools.PrintResource(t, p) 52 } 53 54 func TestProjectsCRUD(t *testing.T) { 55 client, err := clients.NewIdentityV3AdminClient() 56 th.AssertNoErr(t, err) 57 58 project, err := CreateProject(t, client, nil) 59 th.AssertNoErr(t, err) 60 t.Cleanup(func() { 61 DeleteProject(t, client, project.ID) 62 }) 63 64 tools.PrintResource(t, project) 65 66 updateOpts := projects.UpdateOpts{ 67 Description: "Updated", 68 } 69 70 updatedProject, err := projects.Update(client, project.ID, updateOpts).Extract() 71 th.AssertNoErr(t, err) 72 73 tools.PrintResource(t, updatedProject) 74 } 75 76 func TestProjectsNested(t *testing.T) { 77 client, err := clients.NewIdentityV3Client() 78 th.AssertNoErr(t, err) 79 80 projectMain, err := CreateProject(t, client, nil) 81 th.AssertNoErr(t, err) 82 t.Cleanup(func() { 83 DeleteProject(t, client, projectMain.ID) 84 }) 85 tools.PrintResource(t, projectMain) 86 87 createOpts := projects.CreateOpts{ 88 ParentID: projectMain.ID, 89 } 90 91 project, err := CreateProject(t, client, &createOpts) 92 th.AssertNoErr(t, err) 93 t.Cleanup(func() { 94 DeleteProject(t, client, projectMain.ID) 95 }) 96 97 tools.PrintResource(t, project) 98 }