1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 """Errors for the library.
18
19 All exceptions defined by the library
20 should be defined in this file.
21 """
22
23 __author__ = 'jcgregorio@google.com (Joe Gregorio)'
24
25
26 from oauth2client import util
27 from oauth2client.anyjson import simplejson
28
29
30 -class Error(Exception):
31 """Base error for this module."""
32 pass
33
36 """HTTP data was invalid or unexpected."""
37
38 @util.positional(3)
39 - def __init__(self, resp, content, uri=None):
40 self.resp = resp
41 self.content = content
42 self.uri = uri
43
45 """Calculate the reason for the error from the response content."""
46 reason = self.resp.reason
47 try:
48 data = simplejson.loads(self.content)
49 reason = data['error']['message']
50 except (ValueError, KeyError):
51 pass
52 if reason is None:
53 reason = ''
54 return reason
55
57 if self.uri:
58 return '<HttpError %s when requesting %s returned "%s">' % (
59 self.resp.status, self.uri, self._get_reason().strip())
60 else:
61 return '<HttpError %s "%s">' % (self.resp.status, self._get_reason())
62
63 __str__ = __repr__
64
67 """The JSON returned could not be parsed."""
68 pass
69
72 """File type unknown or unexpected."""
73 pass
74
77 """Link type unknown or unexpected."""
78 pass
79
82 """No API with that name and version exists."""
83 pass
84
87 """That is an unacceptable mimetype for this operation."""
88 pass
89
94
97 """Error occured during resumable upload."""
98 pass
99
102 """The given chunksize is not valid."""
103 pass
104
106 """The channel Notification is invalid."""
107 pass
108
110 """Error occured during batch operations."""
111
112 @util.positional(2)
113 - def __init__(self, reason, resp=None, content=None):
114 self.resp = resp
115 self.content = content
116 self.reason = reason
117
119 return '<BatchError %s "%s">' % (self.resp.status, self.reason)
120
121 __str__ = __repr__
122
125 """Exception raised by RequestMockBuilder on unexpected calls."""
126
127 @util.positional(1)
129 """Constructor for an UnexpectedMethodError."""
130 super(UnexpectedMethodError, self).__init__(
131 'Received unexpected call %s' % methodId)
132
133
134 -class UnexpectedBodyError(Error):
135 """Exception raised by RequestMockBuilder on unexpected bodies."""
136
137 - def __init__(self, expected, provided):
138 """Constructor for an UnexpectedMethodError."""
139 super(UnexpectedBodyError, self).__init__(
140 'Expected: [%s] - Provided: [%s]' % (expected, provided))
141