mirror of https://github.com/goharbor/harbor.git
126 lines
3.1 KiB
Go
126 lines
3.1 KiB
Go
package suite01
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/goharbor/harbor/tests/apitests/api-testing/envs"
|
|
"github.com/goharbor/harbor/tests/apitests/api-testing/lib"
|
|
"github.com/goharbor/harbor/tests/apitests/api-testing/tests/suites/base"
|
|
)
|
|
|
|
//Steps of suite01:
|
|
// s0: Get systeminfo
|
|
// s1: create project
|
|
// s2: create user "cody"
|
|
// s3: assign cody as developer
|
|
// s4: push a busybox image to project
|
|
// s5: scan image
|
|
// s6: pull image from project
|
|
// s7: remove "cody" from project member list
|
|
// s8: pull image from project [FAIL]
|
|
// s9: remove repository busybox
|
|
// s10: delete project
|
|
// s11: delete user
|
|
|
|
//ConcourseCiSuite01 : For harbor journey in concourse pipeline
|
|
type ConcourseCiSuite01 struct {
|
|
base.ConcourseCiSuite
|
|
}
|
|
|
|
//Run : Run a group of cases
|
|
func (ccs *ConcourseCiSuite01) Run(onEnvironment *envs.Environment) *lib.Report {
|
|
report := &lib.Report{}
|
|
|
|
//s0
|
|
sys := lib.NewSystemUtil(onEnvironment.RootURI(), onEnvironment.Hostname, onEnvironment.HTTPClient)
|
|
if err := sys.GetSystemInfo(); err != nil {
|
|
report.Failed("GetSystemInfo", err)
|
|
} else {
|
|
report.Passed("GetSystemInfo")
|
|
}
|
|
|
|
//s1
|
|
pro := lib.NewProjectUtil(onEnvironment.RootURI(), onEnvironment.HTTPClient)
|
|
if err := pro.CreateProject(onEnvironment.TestingProject, false); err != nil {
|
|
report.Failed("CreateProject", err)
|
|
} else {
|
|
report.Passed("CreateProject")
|
|
}
|
|
|
|
//s2
|
|
usr := lib.NewUserUtil(onEnvironment.RootURI(), onEnvironment.HTTPClient)
|
|
if err := usr.CreateUser(onEnvironment.Account, onEnvironment.Password); err != nil {
|
|
report.Failed("CreateUser", err)
|
|
} else {
|
|
report.Passed("CreateUser")
|
|
}
|
|
|
|
//s3
|
|
if err := pro.AssignRole(onEnvironment.TestingProject, onEnvironment.Account); err != nil {
|
|
report.Failed("AssignRole", err)
|
|
} else {
|
|
report.Passed("AssignRole")
|
|
}
|
|
|
|
//s4
|
|
if err := ccs.PushImage(onEnvironment); err != nil {
|
|
report.Failed("pushImage", err)
|
|
} else {
|
|
report.Passed("pushImage")
|
|
}
|
|
|
|
//s5
|
|
img := lib.NewImageUtil(onEnvironment.RootURI(), onEnvironment.HTTPClient)
|
|
repoName := fmt.Sprintf("%s/%s", onEnvironment.TestingProject, onEnvironment.ImageName)
|
|
// skip to scan tag
|
|
// if err := img.ScanTag(repoName, onEnvironment.ImageTag); err != nil {
|
|
// report.Failed("ScanTag", err)
|
|
// } else {
|
|
// report.Passed("ScanTag")
|
|
// }
|
|
|
|
//s6
|
|
if err := ccs.PullImage(onEnvironment); err != nil {
|
|
report.Failed("pullImage[1]", err)
|
|
} else {
|
|
report.Passed("pullImage[1]")
|
|
}
|
|
|
|
//s7
|
|
if err := pro.RevokeRole(onEnvironment.TestingProject, onEnvironment.Account); err != nil {
|
|
report.Failed("RevokeRole", err)
|
|
} else {
|
|
report.Passed("RevokeRole")
|
|
}
|
|
|
|
//s8
|
|
if err := ccs.PullImage(onEnvironment); err == nil {
|
|
report.Failed("pullImage[2]", err)
|
|
} else {
|
|
report.Passed("pullImage[2]")
|
|
}
|
|
|
|
//s9
|
|
if err := img.DeleteRepo(repoName); err != nil {
|
|
report.Failed("DeleteRepo", err)
|
|
} else {
|
|
report.Passed("DeleteRepo")
|
|
}
|
|
|
|
//s10
|
|
if err := pro.DeleteProject(onEnvironment.TestingProject); err != nil {
|
|
report.Failed("DeleteProject", err)
|
|
} else {
|
|
report.Passed("DeleteProject")
|
|
}
|
|
|
|
//s11
|
|
if err := usr.DeleteUser(onEnvironment.Account); err != nil {
|
|
report.Failed("DeleteUser", err)
|
|
} else {
|
|
report.Passed("DeleteUser")
|
|
}
|
|
|
|
return report
|
|
}
|