model2.py 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. from attr import attrs, attrib
  2. from attr import Factory
  3. TEST_GROUP_PATTERN = "{prefix}-container.json"
  4. TEST_CASE_PATTERN = "{prefix}-result.json"
  5. ATTACHMENT_PATTERN = '{prefix}-attachment.{ext}'
  6. INDENT = 4
  7. @attrs
  8. class TestResultContainer:
  9. file_pattern = TEST_GROUP_PATTERN
  10. uuid = attrib(default=None)
  11. name = attrib(default=None)
  12. children = attrib(default=Factory(list))
  13. description = attrib(default=None)
  14. descriptionHtml = attrib(default=None)
  15. befores = attrib(default=Factory(list))
  16. afters = attrib(default=Factory(list))
  17. links = attrib(default=Factory(list))
  18. start = attrib(default=None)
  19. stop = attrib(default=None)
  20. @attrs
  21. class ExecutableItem:
  22. name = attrib(default=None)
  23. status = attrib(default=None)
  24. statusDetails = attrib(default=None)
  25. stage = attrib(default=None)
  26. description = attrib(default=None)
  27. descriptionHtml = attrib(default=None)
  28. steps = attrib(default=Factory(list))
  29. attachments = attrib(default=Factory(list))
  30. parameters = attrib(default=Factory(list))
  31. start = attrib(default=None)
  32. stop = attrib(default=None)
  33. @attrs
  34. class TestResult(ExecutableItem):
  35. file_pattern = TEST_CASE_PATTERN
  36. uuid = attrib(default=None)
  37. historyId = attrib(default=None)
  38. testCaseId = attrib(default=None)
  39. fullName = attrib(default=None)
  40. labels = attrib(default=Factory(list))
  41. links = attrib(default=Factory(list))
  42. @attrs
  43. class TestStepResult(ExecutableItem):
  44. id = attrib(default=None)
  45. @attrs
  46. class TestBeforeResult(ExecutableItem):
  47. pass
  48. @attrs
  49. class TestAfterResult(ExecutableItem):
  50. pass
  51. @attrs
  52. class Parameter:
  53. name = attrib(default=None)
  54. value = attrib(default=None)
  55. excluded = attrib(default=None)
  56. mode = attrib(default=None)
  57. @attrs
  58. class Label:
  59. name = attrib(default=None)
  60. value = attrib(default=None)
  61. @attrs
  62. class Link:
  63. type = attrib(default=None)
  64. url = attrib(default=None)
  65. name = attrib(default=None)
  66. @attrs
  67. class StatusDetails:
  68. known = attrib(default=None)
  69. flaky = attrib(default=None)
  70. message = attrib(default=None)
  71. trace = attrib(default=None)
  72. @attrs
  73. class Attachment:
  74. name = attrib(default=None)
  75. source = attrib(default=None)
  76. type = attrib(default=None)
  77. class Status:
  78. FAILED = 'failed'
  79. BROKEN = 'broken'
  80. PASSED = 'passed'
  81. SKIPPED = 'skipped'
  82. UNKNOWN = 'unknown'