workflow_test.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. package test
  2. import (
  3. "fmt"
  4. "git.sxidc.com/go-tools/argo-api"
  5. "git.sxidc.com/go-tools/argo-api/client"
  6. "github.com/pkg/errors"
  7. "gopkg.in/yaml.v3"
  8. "testing"
  9. )
  10. func TestWorkflowBase(t *testing.T) {
  11. argo.Init(baseUrl, token, client.WithTimeoutSec(10))
  12. defer argo.Destroy()
  13. workflowDefinition := make(map[string]any)
  14. err := yaml.Unmarshal(workflowYamlStr, &workflowDefinition)
  15. if err != nil {
  16. panic(err)
  17. }
  18. err = argo.GetInstance().LintWorkflow(client.LintWorkflowParams{
  19. Namespace: namespace,
  20. WorkflowDefinition: workflowDefinition,
  21. })
  22. if err != nil {
  23. t.Fatalf("%+v\n", err)
  24. }
  25. workflowName, err := argo.GetInstance().CreateWorkflow(client.CreateWorkflowParams{
  26. Namespace: namespace,
  27. WorkflowDefinition: workflowDefinition,
  28. })
  29. if err != nil {
  30. t.Fatalf("%+v\n", err)
  31. }
  32. defer func() {
  33. err := argo.GetInstance().DeleteWorkflow(client.DeleteWorkflowParams{
  34. Namespace: namespace,
  35. Name: workflowName,
  36. })
  37. if err != nil {
  38. t.Fatalf("%+v\n", err)
  39. }
  40. }()
  41. createdWorkflowDefinitions, err := argo.GetInstance().GetWorkflowsInNamespace(client.GetWorkflowsInNamespaceParams{
  42. Namespace: namespace,
  43. })
  44. if err != nil {
  45. t.Fatalf("%+v\n", err)
  46. }
  47. if len(createdWorkflowDefinitions) != 1 {
  48. t.Fatalf("%+v\n", errors.Errorf("数量不一致: %v", len(createdWorkflowDefinitions)))
  49. }
  50. createdWorkflowDefinition, err := argo.GetInstance().GetWorkflow(client.GetWorkflowParams{
  51. Namespace: namespace,
  52. Name: workflowName,
  53. })
  54. if err != nil {
  55. t.Fatalf("%+v\n", err)
  56. }
  57. compareDefinitionMap(t, createdWorkflowDefinition, createdWorkflowDefinitions[0])
  58. compareDefinitionMap(t, createdWorkflowDefinitions[0], createdWorkflowDefinition)
  59. }
  60. func TestSubmitWorkflow(t *testing.T) {
  61. argo.Init(baseUrl, token, client.WithTimeoutSec(10))
  62. defer argo.Destroy()
  63. templateDefinition := make(map[string]any)
  64. err := yaml.Unmarshal(workflowTemplateWithParamsYamlStr, &templateDefinition)
  65. if err != nil {
  66. panic(err)
  67. }
  68. err = argo.GetInstance().CreateWorkflowTemplate(client.CreateWorkflowTemplateParams{
  69. Namespace: namespace,
  70. TemplateDefinition: templateDefinition,
  71. })
  72. if err != nil {
  73. t.Fatalf("%+v\n", err)
  74. }
  75. defer func() {
  76. err := argo.GetInstance().DeleteWorkflowTemplate(client.DeleteWorkflowTemplateParams{
  77. Namespace: namespace,
  78. Name: workflowTemplateWithParamsName,
  79. })
  80. if err != nil {
  81. t.Fatalf("%+v\n", err)
  82. }
  83. }()
  84. submitWorkflowName, err := argo.GetInstance().SubmitWorkflowFromWorkflowTemplate(client.SubmitWorkflowFromWorkflowTemplateParams{
  85. Namespace: namespace,
  86. TemplateName: workflowTemplateWithParamsName,
  87. Parameters: []string{"message=Hello Submit"},
  88. })
  89. if err != nil {
  90. t.Fatalf("%+v\n", err)
  91. }
  92. defer func() {
  93. err := argo.GetInstance().DeleteWorkflow(client.DeleteWorkflowParams{
  94. Namespace: namespace,
  95. Name: submitWorkflowName,
  96. })
  97. if err != nil {
  98. t.Fatalf("%+v\n", err)
  99. }
  100. }()
  101. submittedWorkflowDefinition, err := argo.GetInstance().GetWorkflow(client.GetWorkflowParams{
  102. Namespace: namespace,
  103. Name: submitWorkflowName,
  104. })
  105. if err != nil {
  106. t.Fatalf("%+v\n", err)
  107. }
  108. fmt.Println(submittedWorkflowDefinition)
  109. }