github.com/kubeshop/testkube@v1.17.23/pkg/api/v1/testkube/model_test_suite_status_extended.go (about) 1 package testkube 2 3 import ( 4 "fmt" 5 "strings" 6 ) 7 8 func TestSuiteExecutionStatusPtr(status TestSuiteExecutionStatus) *TestSuiteExecutionStatus { 9 return &status 10 } 11 12 var TestSuiteExecutionStatusFailed = TestSuiteExecutionStatusPtr(FAILED_TestSuiteExecutionStatus) 13 var TestSuiteExecutionStatusPassed = TestSuiteExecutionStatusPtr(PASSED_TestSuiteExecutionStatus) 14 var TestSuiteExecutionStatusQueued = TestSuiteExecutionStatusPtr(QUEUED_TestSuiteExecutionStatus) 15 var TestSuiteExecutionStatusRunning = TestSuiteExecutionStatusPtr(RUNNING_TestSuiteExecutionStatus) 16 var TestSuiteExecutionStatusAborting = TestSuiteExecutionStatusPtr(ABORTING_TestSuiteExecutionStatus) 17 var TestSuiteExecutionStatusAborted = TestSuiteExecutionStatusPtr(ABORTED_TestSuiteExecutionStatus) 18 var TestSuiteExecutionStatusTimeout = TestSuiteExecutionStatusPtr(TIMEOUT_TestSuiteExecutionStatus) 19 20 // TestSuiteExecutionStatuses is an array of TestSuiteExecutionStatus 21 type TestSuiteExecutionStatuses []TestSuiteExecutionStatus 22 23 // ToMap generates map from TestSuiteExecutionStatuses 24 func (statuses TestSuiteExecutionStatuses) ToMap() map[TestSuiteExecutionStatus]struct{} { 25 statusMap := map[TestSuiteExecutionStatus]struct{}{} 26 for _, status := range statuses { 27 statusMap[status] = struct{}{} 28 } 29 30 return statusMap 31 } 32 33 // ParseTestSuiteExecutionStatusList parse a list of test suite execution statuses from string 34 func ParseTestSuiteExecutionStatusList(source, separator string) (statusList TestSuiteExecutionStatuses, err error) { 35 statusMap := map[TestSuiteExecutionStatus]struct{}{ 36 FAILED_TestSuiteExecutionStatus: {}, 37 PASSED_TestSuiteExecutionStatus: {}, 38 QUEUED_TestSuiteExecutionStatus: {}, 39 RUNNING_TestSuiteExecutionStatus: {}, 40 } 41 42 if source == "" { 43 return nil, nil 44 } 45 46 values := strings.Split(source, separator) 47 for _, value := range values { 48 status := TestSuiteExecutionStatus(value) 49 if _, ok := statusMap[status]; ok { 50 statusList = append(statusList, status) 51 } else { 52 return nil, fmt.Errorf("unknown test suite execution status %v", status) 53 } 54 } 55 56 return statusList, nil 57 } 58 59 func TestSuiteExecutionStatusString(ptr *TestSuiteExecutionStatus) string { 60 return string(*ptr) 61 }