Skip to content

Commit f134692

Browse files
committed
feat(commons): data models type annotations
- Corrected `TestResult` to initialise with required UUID - Updated `ParameterMode.DEFAULT` from `None` to `"default"` - Updated `ALLURE_UNIQUE_LABELS` to use `LabelType` values
1 parent d420cff commit f134692

3 files changed

Lines changed: 54 additions & 54 deletions

File tree

allure-python-commons/src/allure_commons/lifecycle.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,7 @@ def _last_item_uuid(self, item_type=None):
3636

3737
@contextmanager
3838
def schedule_test_case(self, uuid=None):
39-
test_result = TestResult()
40-
test_result.uuid = uuid or uuid4()
39+
test_result = TestResult(uuid=uuid or uuid4())
4140
self._items[test_result.uuid] = test_result
4241
yield test_result
4342

allure-python-commons/src/allure_commons/model2.py

Lines changed: 47 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1+
from __future__ import annotations
2+
13
from attr import attrs, attrib
24
from attr import Factory
35

4-
56
TEST_GROUP_PATTERN = "{prefix}-container.json"
67
TEST_CASE_PATTERN = "{prefix}-result.json"
78
ATTACHMENT_PATTERN = "{prefix}-attachment.{ext}"
@@ -13,49 +14,49 @@
1314
class TestResultContainer:
1415
file_pattern = TEST_GROUP_PATTERN
1516

16-
uuid = attrib(default=None)
17-
name = attrib(default=None)
18-
children = attrib(default=Factory(list))
19-
description = attrib(default=None)
20-
descriptionHtml = attrib(default=None)
21-
befores = attrib(default=Factory(list))
22-
afters = attrib(default=Factory(list))
23-
links = attrib(default=Factory(list))
24-
start = attrib(default=None)
25-
stop = attrib(default=None)
17+
uuid: str = attrib(default=None)
18+
name: str | None = attrib(default=None)
19+
children: list[str] = attrib(default=Factory(list))
20+
description: str | None = attrib(default=None)
21+
descriptionHtml: str | None = attrib(default=None)
22+
befores: list[TestBeforeResult] = attrib(default=Factory(list))
23+
afters: list[TestAfterResult] = attrib(default=Factory(list))
24+
links: list[Link] = attrib(default=Factory(list))
25+
start: int | None = attrib(default=None)
26+
stop: int | None = attrib(default=None)
2627

2728

2829
@attrs
2930
class ExecutableItem:
30-
name = attrib(default=None)
31-
status = attrib(default=None)
32-
statusDetails = attrib(default=None)
33-
stage = attrib(default=None)
34-
description = attrib(default=None)
35-
descriptionHtml = attrib(default=None)
36-
steps = attrib(default=Factory(list))
37-
attachments = attrib(default=Factory(list))
38-
parameters = attrib(default=Factory(list))
39-
start = attrib(default=None)
40-
stop = attrib(default=None)
31+
name: str | None = attrib(default=None)
32+
status: str | None = attrib(default=None)
33+
statusDetails: StatusDetails | None = attrib(default=None)
34+
stage: str | None = attrib(default=None)
35+
description: str | None = attrib(default=None)
36+
descriptionHtml: str | None = attrib(default=None)
37+
steps: list[TestStepResult] = attrib(default=Factory(list))
38+
attachments: list[Attachment] = attrib(default=Factory(list))
39+
parameters: list[Parameter] = attrib(default=Factory(list))
40+
start: int | None = attrib(default=None)
41+
stop: int | None = attrib(default=None)
4142

4243

4344
@attrs
4445
class TestResult(ExecutableItem):
4546
file_pattern = TEST_CASE_PATTERN
4647

47-
uuid = attrib(default=None)
48-
historyId = attrib(default=None)
49-
testCaseId = attrib(default=None)
50-
fullName = attrib(default=None)
51-
labels = attrib(default=Factory(list))
52-
links = attrib(default=Factory(list))
53-
titlePath = attrib(default=Factory(list))
48+
uuid: str = attrib(default=None)
49+
historyId: str | None = attrib(default=None)
50+
testCaseId: str | None = attrib(default=None)
51+
fullName: str | None = attrib(default=None)
52+
labels: list[Label] = attrib(default=Factory(list))
53+
links: list[Link] = attrib(default=Factory(list))
54+
titlePath: list[str] = attrib(default=Factory(list))
5455

5556

5657
@attrs
5758
class TestStepResult(ExecutableItem):
58-
id = attrib(default=None)
59+
id: str | None = attrib(default=None)
5960

6061

6162
@attrs
@@ -70,38 +71,38 @@ class TestAfterResult(ExecutableItem):
7071

7172
@attrs
7273
class Parameter:
73-
name = attrib(default=None)
74-
value = attrib(default=None)
75-
excluded = attrib(default=None)
76-
mode = attrib(default=None)
74+
name: str = attrib(default=None)
75+
value: str = attrib(default=None)
76+
excluded: bool | None = attrib(default=None)
77+
mode: str | None = attrib(default=None)
7778

7879

7980
@attrs
8081
class Label:
81-
name = attrib(default=None)
82-
value = attrib(default=None)
82+
name: str = attrib(default=None)
83+
value: str = attrib(default=None)
8384

8485

8586
@attrs
8687
class Link:
87-
type = attrib(default=None)
88-
url = attrib(default=None)
89-
name = attrib(default=None)
88+
type: str | None = attrib(default=None)
89+
url: str = attrib(default=None)
90+
name: str | None = attrib(default=None)
9091

9192

9293
@attrs
9394
class StatusDetails:
94-
known = attrib(default=None)
95-
flaky = attrib(default=None)
96-
message = attrib(default=None)
97-
trace = attrib(default=None)
95+
known: bool | None = attrib(default=None)
96+
flaky: bool | None = attrib(default=None)
97+
message: str | None = attrib(default=None)
98+
trace: str | None = attrib(default=None)
9899

99100

100101
@attrs
101102
class Attachment:
102-
name = attrib(default=None)
103-
source = attrib(default=None)
104-
type = attrib(default=None)
103+
name: str = attrib(default=None)
104+
source: str = attrib(default=None)
105+
type: str | None = attrib(default=None)
105106

106107

107108
@attrs

allure-python-commons/src/allure_commons/types.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
from enum import Enum
22

3-
ALLURE_UNIQUE_LABELS = ["severity", "thread", "host"]
4-
53

64
class Severity(str, Enum):
75
BLOCKER = "blocker"
@@ -34,9 +32,11 @@ class LabelType(str):
3432
MANUAL = "ALLURE_MANUAL"
3533

3634

37-
class AttachmentType(Enum):
35+
ALLURE_UNIQUE_LABELS = [LabelType.SEVERITY, LabelType.THREAD, LabelType.HOST]
3836

39-
def __init__(self, mime_type, extension):
37+
38+
class AttachmentType(Enum):
39+
def __init__(self, mime_type: str, extension: str) -> None:
4040
self.mime_type = mime_type
4141
self.extension = extension
4242

@@ -66,7 +66,7 @@ def __init__(self, mime_type, extension):
6666
PDF = ("application/pdf", "pdf")
6767

6868

69-
class ParameterMode(Enum):
69+
class ParameterMode(str, Enum):
7070
HIDDEN = "hidden"
7171
MASKED = "masked"
72-
DEFAULT = None
72+
DEFAULT = "default"

0 commit comments

Comments
 (0)