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

1# authentication.py 

2from ..failure_metadata import FailureMetadata 

3from .base import JobError 

4 

5 

6class AuthenticationError(JobError): 

7 """Raised when user authentication fails.""" 

8 

9 _default_failure_metadata = FailureMetadata( 

10 failure_kind="permanent", 

11 retryable=False, 

12 ) 

13 

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) 

18 

19 

20class AuthorizationError(JobError): 

21 """Raised when user lacks permission for an action.""" 

22 

23 _default_failure_metadata = FailureMetadata( 

24 failure_kind="permanent", 

25 retryable=False, 

26 ) 

27 

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)