feat: complete dev_tools module self-containment
Migrate dev_tools module to self-contained structure: - routes/api/ - API endpoints - models/architecture_scan.py - Architecture scan models - models/test_run.py - Test run models - schemas/ - Pydantic schemas - services/ - Business logic services - tasks/ - Celery background tasks - exceptions.py - Module exceptions Updated definition.py with self-contained paths. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
79
app/modules/dev_tools/exceptions.py
Normal file
79
app/modules/dev_tools/exceptions.py
Normal file
@@ -0,0 +1,79 @@
|
||||
# app/modules/dev_tools/exceptions.py
|
||||
"""
|
||||
Dev-Tools Module Exceptions
|
||||
|
||||
Module-specific exceptions for code quality and test runner functionality.
|
||||
Re-exports code quality exceptions from the legacy location and adds
|
||||
test runner specific exceptions.
|
||||
"""
|
||||
|
||||
from app.exceptions.base import (
|
||||
ExternalServiceException,
|
||||
ResourceNotFoundException,
|
||||
)
|
||||
|
||||
# Re-export code quality exceptions from legacy location
|
||||
# This avoids circular imports since app/exceptions/__init__.py imports code_quality.py
|
||||
from app.exceptions.code_quality import (
|
||||
ViolationNotFoundException,
|
||||
ScanNotFoundException,
|
||||
ScanExecutionException,
|
||||
ScanTimeoutException,
|
||||
ScanParseException,
|
||||
ViolationOperationException,
|
||||
InvalidViolationStatusException,
|
||||
)
|
||||
|
||||
|
||||
# =============================================================================
|
||||
# Test Runner Exceptions (defined here as they don't exist in legacy location)
|
||||
# =============================================================================
|
||||
|
||||
|
||||
class TestRunNotFoundException(ResourceNotFoundException):
|
||||
"""Raised when a test run is not found."""
|
||||
|
||||
def __init__(self, run_id: int):
|
||||
super().__init__(
|
||||
resource_type="TestRun",
|
||||
identifier=str(run_id),
|
||||
error_code="TEST_RUN_NOT_FOUND",
|
||||
)
|
||||
|
||||
|
||||
class TestExecutionException(ExternalServiceException):
|
||||
"""Raised when test execution fails."""
|
||||
|
||||
def __init__(self, reason: str):
|
||||
super().__init__(
|
||||
service_name="TestRunner",
|
||||
message=f"Test execution failed: {reason}",
|
||||
error_code="TEST_EXECUTION_FAILED",
|
||||
)
|
||||
|
||||
|
||||
class TestTimeoutException(ExternalServiceException):
|
||||
"""Raised when test execution times out."""
|
||||
|
||||
def __init__(self, timeout_seconds: int = 3600):
|
||||
super().__init__(
|
||||
service_name="TestRunner",
|
||||
message=f"Test execution timed out after {timeout_seconds} seconds",
|
||||
error_code="TEST_TIMEOUT",
|
||||
)
|
||||
|
||||
|
||||
__all__ = [
|
||||
# Code quality exceptions (re-exported)
|
||||
"ViolationNotFoundException",
|
||||
"ScanNotFoundException",
|
||||
"ScanExecutionException",
|
||||
"ScanTimeoutException",
|
||||
"ScanParseException",
|
||||
"ViolationOperationException",
|
||||
"InvalidViolationStatusException",
|
||||
# Test runner exceptions (defined here)
|
||||
"TestRunNotFoundException",
|
||||
"TestExecutionException",
|
||||
"TestTimeoutException",
|
||||
]
|
||||
Reference in New Issue
Block a user