Coverage for icloudpy/exceptions.py: 79%
19 statements
« prev ^ index » next coverage.py v7.6.10, created at 2024-12-30 19:31 +0000
« prev ^ index » next coverage.py v7.6.10, created at 2024-12-30 19:31 +0000
1"""Library exceptions."""
4class ICloudPyException(Exception):
5 """Generic iCloud exception."""
8# API
9class ICloudPyAPIResponseException(ICloudPyException):
10 """iCloud response exception."""
12 def __init__(self, reason, code=None, retry=False):
13 self.reason = reason
14 self.code = code
15 message = reason or ""
16 if code:
17 message += f" ({code})"
18 if retry:
19 message += ". Retrying ..."
21 super().__init__(message)
24class ICloudPyServiceNotActivatedException(ICloudPyAPIResponseException):
25 """iCloud service not activated exception."""
28# Login
29class ICloudPyFailedLoginException(ICloudPyException):
30 """iCloud failed login exception."""
33class ICloudPy2SARequiredException(ICloudPyException):
34 """iCloud 2SA required exception."""
36 def __init__(self, apple_id):
37 message = f"Two-step authentication required for account:{apple_id}"
38 super().__init__(message)
41class ICloudPyNoStoredPasswordAvailableException(ICloudPyException):
42 """iCloud no stored password exception."""
45# Webservice specific
46class ICloudPyNoDevicesException(ICloudPyException):
47 """iCloud no device exception."""