Coverage for src / lexigram / contracts / mailer / errors.py: 70%

10 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-08-19 05:41 +0800

1# lexigram-contracts/src/lexigram/contracts/mailer/errors.py 

2"""Mailer error types.""" 

3 

4from __future__ import annotations 

5 

6from typing import Any 

7 

8from lexigram.contracts.exceptions.domain import DomainError 

9 

10 

11class MailerError(DomainError): 

12 """Base mailer/email notification error.""" 

13 

14 _code = "LEX_ERR_NOTIF_002" 

15 

16 def __init__( 

17 self, 

18 message: str = "Mailer error", 

19 *, 

20 backend: str = "unknown", 

21 **kwargs: Any, 

22 ) -> None: 

23 details = {"backend": backend, **kwargs.pop("details", {})} 

24 super().__init__(message, details=details, **kwargs) 

25 self.backend = backend 

26 

27 

28__all__ = ["MailerError"]