workflow_template_test.go 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package test
  2. import (
  3. "git.sxidc.com/go-tools/argo-api"
  4. "git.sxidc.com/go-tools/argo-api/client"
  5. "github.com/pkg/errors"
  6. "gopkg.in/yaml.v3"
  7. "testing"
  8. )
  9. func TestWorkflowTemplate(t *testing.T) {
  10. argo.Init(baseUrl, token, client.WithTimeoutSec(10))
  11. defer argo.Destroy()
  12. templateDefinition := make(map[string]any)
  13. err := yaml.Unmarshal(templateYamlStr, &templateDefinition)
  14. if err != nil {
  15. panic(err)
  16. }
  17. err = argo.GetInstance().LintWorkflowTemplate(client.LintWorkflowTemplateParams{
  18. Namespace: namespace,
  19. TemplateDefinition: templateDefinition,
  20. })
  21. if err != nil {
  22. t.Fatalf("%+v\n", err)
  23. }
  24. err = argo.GetInstance().CreateWorkflowTemplate(client.CreateWorkflowTemplateParams{
  25. Namespace: namespace,
  26. TemplateDefinition: templateDefinition,
  27. })
  28. if err != nil {
  29. t.Fatalf("%+v\n", err)
  30. }
  31. defer func() {
  32. err := argo.GetInstance().DeleteWorkflowTemplate(client.DeleteWorkflowTemplateParams{
  33. Namespace: namespace,
  34. Name: workflowTemplateName,
  35. })
  36. if err != nil {
  37. t.Fatalf("%+v\n", err)
  38. }
  39. }()
  40. createdTemplateDefinitions, err := argo.GetInstance().GetWorkflowTemplatesInNamespace(client.GetWorkflowTemplatesInNamespaceParams{
  41. Namespace: namespace,
  42. })
  43. if err != nil {
  44. t.Fatalf("%+v\n", err)
  45. }
  46. if len(createdTemplateDefinitions) != 1 {
  47. t.Fatalf("%+v\n", errors.Errorf("数量不一致: %v", len(createdTemplateDefinitions)))
  48. }
  49. createdTemplateDefinition, err := argo.GetInstance().GetWorkflowTemplate(client.GetWorkflowTemplateParams{
  50. Namespace: namespace,
  51. Name: workflowTemplateName,
  52. })
  53. if err != nil {
  54. t.Fatalf("%+v\n", err)
  55. }
  56. compareDefinitionMap(t, createdTemplateDefinition, createdTemplateDefinitions[0])
  57. err = argo.GetInstance().UpdateWorkflowTemplate(client.UpdateWorkflowTemplateParams{
  58. Namespace: namespace,
  59. Name: workflowTemplateName,
  60. TemplateDefinition: createdTemplateDefinition,
  61. })
  62. if err != nil {
  63. t.Fatalf("%+v\n", err)
  64. }
  65. }