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

1""" 

2Integration testing data structures and utilities. 

3 

4This module contains common data structures and utility functions 

5for integration testing across the MoAI-ADK system. 

6""" 

7 

8from dataclasses import dataclass 

9from enum import Enum 

10from typing import List, Optional 

11 

12 

13class TestStatus(Enum): 

14 """Test status enumeration""" 

15 

16 PENDING = "pending" 

17 RUNNING = "running" 

18 PASSED = "passed" 

19 FAILED = "failed" 

20 SKIPPED = "skipped" 

21 

22 

23@dataclass 

24class IntegrationTestResult: 

25 """Test result data structure""" 

26 

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 

33 

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 

43 

44 

45@dataclass 

46class TestComponent: 

47 """Test component definition""" 

48 

49 name: str 

50 component_type: str 

51 version: str 

52 dependencies: Optional[List[str]] = None 

53 

54 def __post_init__(self): 

55 if self.dependencies is None: 

56 self.dependencies = [] 

57 

58 

59@dataclass 

60class TestSuite: 

61 """Test suite definition""" 

62 

63 name: str 

64 description: str 

65 components: List[TestComponent] 

66 test_cases: Optional[List[str]] = None 

67 

68 def __post_init__(self): 

69 if self.test_cases is None: 

70 self.test_cases = [] 

71 

72 

73class IntegrationTestError(Exception): 

74 """Base exception for integration testing""" 

75 

76 pass 

77 

78 

79class TestTimeoutError(IntegrationTestError): 

80 """Test timeout exception""" 

81 

82 pass 

83 

84 

85class ComponentNotFoundError(IntegrationTestError): 

86 """Component not found exception""" 

87 

88 pass