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
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-24 23:39 +0800
1"""Domain errors for the RBAC admin subsystem.
3``AdminRoleError`` extends ``DomainError`` because role management failures
4(duplicate names, missing roles, system-role protection) are expected,
5recoverable domain failures.
6"""
8from __future__ import annotations
10from lexigram.contracts.exceptions.domain import DomainError
13class AdminRoleError(DomainError):
14 """Base exception for all role management errors."""
16 _code: str = "LEX_ERR_ADMIN_022"
19class RoleDuplicateError(AdminRoleError):
20 """A role with the same name already exists."""
22 _code: str = "LEX_ERR_ADMIN_023"
25class RoleNotFoundError(AdminRoleError):
26 """The requested role does not exist."""
28 _code: str = "LEX_ERR_ADMIN_024"
31class SystemRoleError(AdminRoleError):
32 """The operation is not allowed on a system role."""
34 _code: str = "LEX_ERR_ADMIN_025"
37__all__ = [
38 "AdminRoleError",
39 "RoleDuplicateError",
40 "RoleNotFoundError",
41 "SystemRoleError",
42]