Coverage for src / moai_adk / core / integration / models.py: 73.17%
41 statements
« prev ^ index » next coverage.py v7.12.0, created at 2025-11-20 20:52 +0900
« prev ^ index » next coverage.py v7.12.0, created at 2025-11-20 20:52 +0900
1"""
2Integration testing data structures and utilities.
4This module contains common data structures and utility functions
5for integration testing across the MoAI-ADK system.
6"""
8from dataclasses import dataclass
9from enum import Enum
10from typing import List, Optional
13class TestStatus(Enum):
14 """Test status enumeration"""
16 PENDING = "pending"
17 RUNNING = "running"
18 PASSED = "passed"
19 FAILED = "failed"
20 SKIPPED = "skipped"
23@dataclass
24class IntegrationTestResult:
25 """Test result data structure"""
27 test_name: str
28 passed: bool
29 error_message: Optional[str] = None
30 execution_time: float = 0.0
31 components_tested: Optional[List[str]] = None
32 status: Optional[TestStatus] = None
34 def __post_init__(self):
35 if self.components_tested is None:
36 self.components_tested = []
37 if self.passed:
38 self.status = TestStatus.PASSED
39 elif self.error_message:
40 self.status = TestStatus.FAILED
41 else:
42 self.status = TestStatus.PENDING
45@dataclass
46class TestComponent:
47 """Test component definition"""
49 name: str
50 component_type: str
51 version: str
52 dependencies: Optional[List[str]] = None
54 def __post_init__(self):
55 if self.dependencies is None:
56 self.dependencies = []
59@dataclass
60class TestSuite:
61 """Test suite definition"""
63 name: str
64 description: str
65 components: List[TestComponent]
66 test_cases: Optional[List[str]] = None
68 def __post_init__(self):
69 if self.test_cases is None:
70 self.test_cases = []
73class IntegrationTestError(Exception):
74 """Base exception for integration testing"""
76 pass
79class TestTimeoutError(IntegrationTestError):
80 """Test timeout exception"""
82 pass
85class ComponentNotFoundError(IntegrationTestError):
86 """Component not found exception"""
88 pass