-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmodels.py
More file actions
52 lines (38 loc) · 1.21 KB
/
Copy pathmodels.py
File metadata and controls
52 lines (38 loc) · 1.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
from pydantic import BaseModel
from typing import Optional
class TestFailure(BaseModel):
name: str
status: str # "failed" or "broken"
uid: str
duration_seconds: float
flaky: bool
mftf_test_name: str # extracted test name used for Jira search
class JiraTicket(BaseModel):
key: str
summary: str
status: str
url: str
description: Optional[str] = None
class FailureWithJira(BaseModel):
test: TestFailure
jira_tickets: list[JiraTicket] = []
jira_search_performed: bool = False
jira_error: Optional[str] = None
class AnalyzeRequest(BaseModel):
allure_url: str
allure_auth_token: Optional[str] = None # Bearer token if report is behind auth
jira_base_url: Optional[str] = None
jira_token: Optional[str] = None
class ParseRequest(BaseModel):
allure_data: dict # raw Allure JSON (suites.json or behaviors.json content)
jira_base_url: Optional[str] = None
jira_token: Optional[str] = None
class AnalyzeSummary(BaseModel):
total_tests_scanned: int
total_failed: int
total_broken: int
total_with_jira_tickets: int
allure_url: str
class AnalyzeResponse(BaseModel):
summary: AnalyzeSummary
results: list[FailureWithJira]