Coverage for functions \ flipdare \ error \ app_error_protocol.py: 94%

18 statements  

« prev     ^ index     » next       coverage.py v7.13.0, created at 2026-05-08 12:22 +1000

1# Copyright (c) 2026 Flipdare Pty Ltd. All rights reserved. 

2# 

3# This file is part of Flipdare's proprietary software and contains 

4# confidential and copyrighted material. Unauthorised copying, 

5# modification, distribution, or use of this file is strictly 

6# prohibited without prior written permission from Flipdare Pty Ltd. 

7# 

8# This software includes third-party components licensed under MIT, 

9# BSD, and Apache 2.0 licences. See THIRD_PARTY_NOTICES for details. 

10# 

11from __future__ import annotations 

12 

13from typing import Protocol, TypeGuard, override, runtime_checkable, Any 

14 

15from flipdare.generated.shared.app_error_code import AppErrorCode 

16from flipdare.generated.shared.app_log_category import AppLogCategory 

17from flipdare.generated.shared.app_payment_error_code import AppPaymentErrorCode 

18 

19__all__ = ["AppErrorProtocol", "ErrorProtocolGuard"] 

20 

21 

22class ErrorProtocolGuard: 

23 @staticmethod 

24 def is_app_code(obj: Any) -> TypeGuard[AppErrorCode]: 

25 return isinstance(obj, AppErrorCode) 

26 

27 @staticmethod 

28 def is_payment_code(obj: Any) -> TypeGuard[AppPaymentErrorCode]: 

29 return isinstance(obj, AppPaymentErrorCode) 

30 

31 

32@runtime_checkable 

33class AppErrorProtocol(Protocol): 

34 """Protocol for objects acting as application error codes.""" 

35 

36 _http_code: int 

37 _category: AppLogCategory 

38 _display_title: str 

39 

40 @property 

41 def value(self) -> str: ... 

42 

43 @property 

44 def http_code(self) -> int: ... 

45 

46 @property 

47 def category(self) -> AppLogCategory: ... 

48 

49 @property 

50 def display_title(self) -> str: ... 

51 

52 @override 

53 def __str__(self) -> str: ...