1+ from __future__ import annotations
2+
3+ from enum import Enum
4+
15from attr import attrs , attrib
26from attr import Factory
37
8+ from allure_commons .types import AttachmentType , LabelType , LinkType , ParameterMode
49
510TEST_GROUP_PATTERN = "{prefix}-container.json"
611TEST_CASE_PATTERN = "{prefix}-result.json"
1217class TestResultContainer :
1318 file_pattern = TEST_GROUP_PATTERN
1419
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 )
20+ uuid : str = attrib (default = None )
21+ name : str | None = attrib (default = None )
22+ children : list [ str ] = attrib (default = Factory (list ))
23+ description : str | None = attrib (default = None )
24+ descriptionHtml : str | None = attrib (default = None )
25+ befores : list [ TestBeforeResult ] = attrib (default = Factory (list ))
26+ afters : list [ TestAfterResult ] = attrib (default = Factory (list ))
27+ links : list [ Link ] = attrib (default = Factory (list ))
28+ start : int | None = attrib (default = None )
29+ stop : int | None = attrib (default = None )
2530
2631
2732@attrs
2833class 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 )
34+ name : str | None = attrib (default = None )
35+ status : Status | None = attrib (default = None )
36+ statusDetails : StatusDetails | None = attrib (default = None )
37+ stage : Stage | None = attrib (default = None )
38+ description : str | None = attrib (default = None )
39+ descriptionHtml : str | None = attrib (default = None )
40+ steps : list [ TestStepResult ] = attrib (default = Factory (list ))
41+ attachments : list [ Attachment ] = attrib (default = Factory (list ))
42+ parameters : list [ Parameter ] = attrib (default = Factory (list ))
43+ start : int | None = attrib (default = None )
44+ stop : int | None = attrib (default = None )
4045
4146
4247@attrs
4348class TestResult (ExecutableItem ):
4449 file_pattern = TEST_CASE_PATTERN
4550
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 ))
51+ uuid : str = attrib (default = None )
52+ historyId : str | None = attrib (default = None )
53+ testCaseId : str | None = attrib (default = None )
54+ fullName : str | None = attrib (default = None )
55+ labels : list [ Label ] = attrib (default = Factory (list ))
56+ links : list [ Link ] = attrib (default = Factory (list ))
57+ titlePath : list [ str ] = attrib (default = Factory (list ))
5358
5459
5560@attrs
5661class TestStepResult (ExecutableItem ):
57- id = attrib (default = None ) # noqa: A003
62+ id : str | None = attrib (default = None ) # noqa: A003
5863
5964
6065@attrs
@@ -69,43 +74,51 @@ class TestAfterResult(ExecutableItem):
6974
7075@attrs
7176class Parameter :
72- name = attrib (default = None )
73- value = attrib (default = None )
74- excluded = attrib (default = None )
75- mode = attrib (default = None )
77+ name : str = attrib (default = None )
78+ value : str = attrib (default = None )
79+ excluded : bool | None = attrib (default = None )
80+ mode : ParameterMode | None = attrib (default = None )
7681
7782
7883@attrs
7984class Label :
80- name = attrib (default = None )
81- value = attrib (default = None )
85+ name : LabelType | str = attrib (default = None )
86+ value : str = attrib (default = None )
8287
8388
8489@attrs
8590class Link :
86- type = attrib (default = None ) # noqa: A003
87- url = attrib (default = None )
88- name = attrib (default = None )
91+ type : LinkType | str | None = attrib (default = None ) # noqa: A003
92+ url : str = attrib (default = None )
93+ name : str | None = attrib (default = None )
8994
9095
9196@attrs
9297class StatusDetails :
93- known = attrib (default = None )
94- flaky = attrib (default = None )
95- message = attrib (default = None )
96- trace = attrib (default = None )
98+ known : bool | None = attrib (default = None )
99+ flaky : bool | None = attrib (default = None )
100+ message : str | None = attrib (default = None )
101+ trace : str | None = attrib (default = None )
97102
98103
99104@attrs
100105class Attachment :
101- name = attrib (default = None )
102- source = attrib (default = None )
103- type = attrib (default = None ) # noqa: A003
106+ name : str = attrib (default = None )
107+ source : str = attrib (default = None )
108+ type : AttachmentType | str | None = attrib (default = None ) # noqa: A003
104109
105110
106- class Status :
111+ class Status ( str , Enum ) :
107112 FAILED = 'failed'
108113 BROKEN = 'broken'
109114 PASSED = 'passed'
110115 SKIPPED = 'skipped'
111116 UNKNOWN = 'unknown'
117+
118+
119+ class Stage (str , Enum ):
120+ SCHEDULED = "scheduled"
121+ RUNNING = "running"
122+ FINISHED = "finished"
123+ PENDING = "pending"
124+ INTERRUPTED = "interrupted"
0 commit comments