Coverage for dataexcept/exceptions/authentication.py: 100%
15 statements
« prev ^ index » next coverage.py v7.16.0, created at 2026-09-27 14:44 +0000
« prev ^ index » next coverage.py v7.16.0, created at 2026-09-27 14:44 +0000
1# authentication.py
2from ..failure_metadata import FailureMetadata
3from .base import JobError
6class AuthenticationError(JobError):
7 """Raised when user authentication fails."""
9 _default_failure_metadata = FailureMetadata(
10 failure_kind="permanent",
11 retryable=False,
12 )
14 def __init__(self, user: str, message: str | None = None):
15 self.user = user
16 self.message = message or f"Authentication failed for user '{user}'"
17 super().__init__(self.message)
20class AuthorizationError(JobError):
21 """Raised when user lacks permission for an action."""
23 _default_failure_metadata = FailureMetadata(
24 failure_kind="permanent",
25 retryable=False,
26 )
28 def __init__(self, user: str, permission: str):
29 self.user = user
30 self.permission = permission
31 msg = f"User '{user}' lacks permission '{permission}'"
32 super().__init__(msg)