Coverage for src/lexigram/admin/rbac/errors.py: 100%

11 statements  

« prev     ^ index     » next       coverage.py v7.15.4, created at 2026-08-24 23:39 +0800

1"""Domain errors for the RBAC admin subsystem. 

2 

3``AdminRoleError`` extends ``DomainError`` because role management failures 

4(duplicate names, missing roles, system-role protection) are expected, 

5recoverable domain failures. 

6""" 

7 

8from __future__ import annotations 

9 

10from lexigram.contracts.exceptions.domain import DomainError 

11 

12 

13class AdminRoleError(DomainError): 

14 """Base exception for all role management errors.""" 

15 

16 _code: str = "LEX_ERR_ADMIN_022" 

17 

18 

19class RoleDuplicateError(AdminRoleError): 

20 """A role with the same name already exists.""" 

21 

22 _code: str = "LEX_ERR_ADMIN_023" 

23 

24 

25class RoleNotFoundError(AdminRoleError): 

26 """The requested role does not exist.""" 

27 

28 _code: str = "LEX_ERR_ADMIN_024" 

29 

30 

31class SystemRoleError(AdminRoleError): 

32 """The operation is not allowed on a system role.""" 

33 

34 _code: str = "LEX_ERR_ADMIN_025" 

35 

36 

37__all__ = [ 

38 "AdminRoleError", 

39 "RoleDuplicateError", 

40 "RoleNotFoundError", 

41 "SystemRoleError", 

42]