-
Notifications
You must be signed in to change notification settings - Fork 59
/
exceptions.py
135 lines (86 loc) · 3.11 KB
/
exceptions.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# Copyright (c) 2020 Jeff Irion and contributors
#
# This file is part of the adb-shell package. It incorporates work
# covered by the following license notice:
#
#
# Copyright 2014 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""ADB-related exceptions.
"""
from . import constants
class AdbCommandFailureException(Exception):
"""A ``b'FAIL'`` packet was received.
"""
class AdbConnectionError(Exception):
"""ADB command not sent because a connection to the device has not been established.
"""
class AdbTimeoutError(Exception):
"""ADB command did not complete within the specified time.
"""
class DeviceAuthError(Exception):
"""Device authentication failed.
"""
def __init__(self, message, *args):
message %= args
super(DeviceAuthError, self).__init__(message, *args)
class InterleavedDataError(Exception):
"""We only support command sent serially.
"""
class InvalidChecksumError(Exception):
"""Checksum of data didn't match expected checksum.
"""
class InvalidCommandError(Exception):
"""Got an invalid command.
"""
def __init__(self, message, response_header, response_data):
if response_header == constants.FAIL:
message = 'Command failed, device said so. (%s)' % message
super(InvalidCommandError, self).__init__(message, response_header, response_data)
class InvalidTransportError(Exception):
"""The provided transport does not implement the necessary methods: ``close``, ``connect``, ``bulk_read``, and ``bulk_write``.
"""
class InvalidResponseError(Exception):
"""Got an invalid response to our command.
"""
class PushFailedError(Exception):
"""Pushing a file failed for some reason.
"""
class TcpTimeoutException(Exception):
"""TCP connection timed read/write operation exceeded the allowed time.
"""
class UsbDeviceNotFoundError(Exception):
"""TODO
"""
class UsbReadFailedError(Exception):
"""TODO
Parameters
----------
msg : str
The error message
usb_error : libusb1.USBError
An exception from ``libusb1``
Attributes
----------
usb_error : libusb1.USBError
An exception from ``libusb1``
"""
def __init__(self, msg, usb_error):
super(UsbReadFailedError, self).__init__(msg)
self.usb_error = usb_error
def __str__(self):
return '%s: %s' % (super(UsbReadFailedError, self).__str__(), str(self.usb_error))
class UsbWriteFailedError(Exception):
""":meth:`adb_shell.transport.usb_transport.UsbTransport.bulk_write` failed.
"""