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
107 """Error occured during batch operations."""
108
109 @util.positional(2)
110 - def __init__(self, reason, resp=None, content=None):
111 self.resp = resp
112 self.content = content
113 self.reason = reason
114
116 return '<BatchError %s "%s">' % (self.resp.status, self.reason)
117
118 __str__ = __repr__
119
122 """Exception raised by RequestMockBuilder on unexpected calls."""
123
124 @util.positional(1)
126 """Constructor for an UnexpectedMethodError."""
127 super(UnexpectedMethodError, self).__init__(
128 'Received unexpected call %s' % methodId)
129
130
131 -class UnexpectedBodyError(Error):
132 """Exception raised by RequestMockBuilder on unexpected bodies."""
133
134 - def __init__(self, expected, provided):
135 """Constructor for an UnexpectedMethodError."""
136 super(UnexpectedBodyError, self).__init__(
137 'Expected: [%s] - Provided: [%s]' % (expected, provided))
138