Files
orion/app/modules/dev_tools/exceptions.py
Samir Boulahtit d987274e2c 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>
2026-01-28 22:21:59 +01:00

80 lines
2.3 KiB
Python

# 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",
]