github.com/kubeshop/testkube@v1.17.23/pkg/api/v1/testkube/model_execution_result_extended.go (about) 1 package testkube 2 3 func NewRunningExecutionResult() *ExecutionResult { 4 return &ExecutionResult{ 5 Status: StatusPtr(RUNNING_ExecutionStatus), 6 } 7 } 8 9 // NewPendingExecutionResult DEPRECATED since testkube@1.0.0 10 func NewPendingExecutionResult() ExecutionResult { 11 return ExecutionResult{ 12 Status: StatusPtr(RUNNING_ExecutionStatus), 13 } 14 } 15 16 func NewErrorExecutionResult(err error) ExecutionResult { 17 return ExecutionResult{ 18 Status: StatusPtr(FAILED_ExecutionStatus), 19 ErrorMessage: err.Error(), 20 Output: err.Error(), 21 } 22 } 23 24 func (e *ExecutionResult) Abort() { 25 e.Status = StatusPtr(ABORTED_ExecutionStatus) 26 } 27 28 func (e *ExecutionResult) Timeout() { 29 e.Status = StatusPtr(TIMEOUT_ExecutionStatus) 30 } 31 32 func (e *ExecutionResult) InProgress() { 33 e.Status = StatusPtr(RUNNING_ExecutionStatus) 34 } 35 36 func (e *ExecutionResult) Success() { 37 e.Status = StatusPtr(PASSED_ExecutionStatus) 38 } 39 40 func (e *ExecutionResult) Error() { 41 e.Status = StatusPtr(FAILED_ExecutionStatus) 42 } 43 44 func (e *ExecutionResult) IsCompleted() bool { 45 return e.IsPassed() || e.IsFailed() || e.IsAborted() || e.IsTimeout() 46 } 47 48 func (e *ExecutionResult) IsRunning() bool { 49 return *e.Status == RUNNING_ExecutionStatus 50 } 51 52 func (e *ExecutionResult) IsQueued() bool { 53 return *e.Status == QUEUED_ExecutionStatus 54 } 55 56 func (e *ExecutionResult) IsPassed() bool { 57 return *e.Status == PASSED_ExecutionStatus 58 } 59 60 func (e *ExecutionResult) IsFailed() bool { 61 return *e.Status == FAILED_ExecutionStatus 62 } 63 64 func (e *ExecutionResult) IsAborted() bool { 65 return *e.Status == ABORTED_ExecutionStatus 66 } 67 func (e *ExecutionResult) IsTimeout() bool { 68 return *e.Status == TIMEOUT_ExecutionStatus 69 } 70 71 func (e *ExecutionResult) Err(err error) *ExecutionResult { 72 e.Status = ExecutionStatusFailed 73 e.ErrorMessage = err.Error() 74 return e 75 } 76 77 // WithErrors return error result if any of passed errors is not nil 78 func (e *ExecutionResult) WithErrors(errors ...error) *ExecutionResult { 79 for _, err := range errors { 80 if err != nil { 81 return e.Err(err) 82 } 83 } 84 return e 85 } 86 87 func (e *ExecutionResult) FailedStepsCount() int { 88 count := 0 89 for _, v := range e.Steps { 90 if v.Status != string(PASSED_ExecutionStatus) { 91 count++ 92 } 93 } 94 return count 95 } 96 97 func (e *ExecutionResult) FailedSteps() (steps []ExecutionStepResult) { 98 for _, s := range e.Steps { 99 if s.Status != string(PASSED_ExecutionStatus) { 100 steps = append(steps, s) 101 } 102 } 103 104 return 105 } 106 107 // GetDeepCopy gives a copy of ExecutionResult with new pointers 108 func (e *ExecutionResult) GetDeepCopy() *ExecutionResult { 109 if e == nil { 110 return nil 111 } 112 113 status := new(ExecutionStatus) 114 if e.Status != nil { 115 *status = *e.Status 116 } 117 118 reports := new(ExecutionResultReports) 119 if e.Reports != nil { 120 *reports = *e.Reports 121 } 122 123 result := ExecutionResult{ 124 Status: status, 125 Output: e.Output, 126 OutputType: e.OutputType, 127 ErrorMessage: e.ErrorMessage, 128 Steps: e.Steps, 129 Reports: reports, 130 } 131 return &result 132 }