Coverage for src/data_api/core/exceptions.py: 100%
15 statements
« prev ^ index » next coverage.py v7.16.2, created at 2026-11-13 19:28 +0000
« prev ^ index » next coverage.py v7.16.2, created at 2026-11-13 19:28 +0000
1"""
2Custom exceptions for the application.
3"""
5INTERNAL_ERROR_DETAIL = "Internal server error"
8class DataAPIException(Exception):
9 """Base exception for all Data API errors."""
11 pass
14class DataNotAvailableException(DataAPIException):
15 """Raised when requested data is not available."""
17 pass
20class DataUpdateException(DataAPIException):
21 """Raised when data update fails."""
23 pass
26class UpstreamException(DataAPIException):
27 """A live upstream failure with a safe public response."""
29 status_code = 502
30 detail = "Upstream service unavailable"
33class UpstreamTimeoutException(UpstreamException):
34 """Raised when a live upstream request times out."""
36 status_code = 504
37 detail = "Upstream request timed out"
40class UpstreamResponseException(UpstreamException):
41 """Raised when a live upstream response cannot be parsed or validated."""
43 detail = "Invalid response from upstream service"