1+ from __future__ import annotations
2+
3+ from enum import Enum
4+ from typing import TYPE_CHECKING
5+
16from attr import attrs , attrib
27from attr import Factory
38
9+ if TYPE_CHECKING :
10+ from allure_commons .types import AttachmentType , LabelType , LinkType , ParameterMode
411
512TEST_GROUP_PATTERN = "{prefix}-container.json"
613TEST_CASE_PATTERN = "{prefix}-result.json"
1219class TestResultContainer :
1320 file_pattern = TEST_GROUP_PATTERN
1421
15- uuid = attrib (default = None )
16- name = attrib (default = None )
17- children = attrib (default = Factory (list ))
18- description = attrib (default = None )
19- descriptionHtml = attrib (default = None )
20- befores = attrib (default = Factory (list ))
21- afters = attrib (default = Factory (list ))
22- links = attrib (default = Factory (list ))
23- start = attrib (default = None )
24- stop = attrib (default = None )
22+ uuid : str = attrib (default = None )
23+ name : str | None = attrib (default = None )
24+ children : list [ str ] = attrib (default = Factory (list ))
25+ description : str | None = attrib (default = None )
26+ descriptionHtml : str | None = attrib (default = None )
27+ befores : list [ TestBeforeResult ] = attrib (default = Factory (list ))
28+ afters : list [ TestAfterResult ] = attrib (default = Factory (list ))
29+ links : list [ Link ] = attrib (default = Factory (list ))
30+ start : int | None = attrib (default = None )
31+ stop : int | None = attrib (default = None )
2532
2633
2734@attrs
2835class ExecutableItem :
29- name = attrib (default = None )
30- status = attrib (default = None )
31- statusDetails = attrib (default = None )
32- stage = attrib (default = None )
33- description = attrib (default = None )
34- descriptionHtml = attrib (default = None )
35- steps = attrib (default = Factory (list ))
36- attachments = attrib (default = Factory (list ))
37- parameters = attrib (default = Factory (list ))
38- start = attrib (default = None )
39- stop = attrib (default = None )
36+ name : str | None = attrib (default = None )
37+ status : Status | None = attrib (default = None )
38+ statusDetails : StatusDetails | None = attrib (default = None )
39+ stage : Stage | None = attrib (default = None )
40+ description : str | None = attrib (default = None )
41+ descriptionHtml : str | None = attrib (default = None )
42+ steps : list [ TestStepResult ] = attrib (default = Factory (list ))
43+ attachments : list [ Attachment ] = attrib (default = Factory (list ))
44+ parameters : list [ Parameter ] = attrib (default = Factory (list ))
45+ start : int | None = attrib (default = None )
46+ stop : int | None = attrib (default = None )
4047
4148
4249@attrs
4350class TestResult (ExecutableItem ):
4451 file_pattern = TEST_CASE_PATTERN
4552
46- uuid = attrib (default = None )
47- historyId = attrib (default = None )
48- testCaseId = attrib (default = None )
49- fullName = attrib (default = None )
50- labels = attrib (default = Factory (list ))
51- links = attrib (default = Factory (list ))
52- titlePath = attrib (default = Factory (list ))
53+ uuid : str = attrib (default = None )
54+ historyId : str | None = attrib (default = None )
55+ testCaseId : str | None = attrib (default = None )
56+ fullName : str | None = attrib (default = None )
57+ labels : list [ Label ] = attrib (default = Factory (list ))
58+ links : list [ Link ] = attrib (default = Factory (list ))
59+ titlePath : list [ str ] = attrib (default = Factory (list ))
5360
5461
5562@attrs
5663class TestStepResult (ExecutableItem ):
57- id = attrib (default = None ) # noqa: A003
64+ id : str | None = attrib (default = None ) # noqa: A003
5865
5966
6067@attrs
@@ -69,43 +76,51 @@ class TestAfterResult(ExecutableItem):
6976
7077@attrs
7178class Parameter :
72- name = attrib (default = None )
73- value = attrib (default = None )
74- excluded = attrib (default = None )
75- mode = attrib (default = None )
79+ name : str = attrib (default = None )
80+ value : str = attrib (default = None )
81+ excluded : bool | None = attrib (default = None )
82+ mode : ParameterMode | None = attrib (default = None )
7683
7784
7885@attrs
7986class Label :
80- name = attrib (default = None )
81- value = attrib (default = None )
87+ name : LabelType | str = attrib (default = None )
88+ value : str = attrib (default = None )
8289
8390
8491@attrs
8592class Link :
86- type = attrib (default = None ) # noqa: A003
87- url = attrib (default = None )
88- name = attrib (default = None )
93+ type : LinkType | str | None = attrib (default = None ) # noqa: A003
94+ url : str = attrib (default = None )
95+ name : str | None = attrib (default = None )
8996
9097
9198@attrs
9299class StatusDetails :
93- known = attrib (default = None )
94- flaky = attrib (default = None )
95- message = attrib (default = None )
96- trace = attrib (default = None )
100+ known : bool | None = attrib (default = None )
101+ flaky : bool | None = attrib (default = None )
102+ message : str | None = attrib (default = None )
103+ trace : str | None = attrib (default = None )
97104
98105
99106@attrs
100107class Attachment :
101- name = attrib (default = None )
102- source = attrib (default = None )
103- type = attrib (default = None ) # noqa: A003
108+ name : str = attrib (default = None )
109+ source : str = attrib (default = None )
110+ type : AttachmentType | str | None = attrib (default = None ) # noqa: A003
104111
105112
106- class Status :
113+ class Status ( str , Enum ) :
107114 FAILED = 'failed'
108115 BROKEN = 'broken'
109116 PASSED = 'passed'
110117 SKIPPED = 'skipped'
111118 UNKNOWN = 'unknown'
119+
120+
121+ class Stage (str , Enum ):
122+ SCHEDULED = "scheduled"
123+ RUNNING = "running"
124+ FINISHED = "finished"
125+ PENDING = "pending"
126+ INTERRUPTED = "interrupted"
0 commit comments