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 return reason
53
55 if self.uri:
56 return '<HttpError %s when requesting %s returned "%s">' % (
57 self.resp.status, self.uri, self._get_reason().strip())
58 else:
59 return '<HttpError %s "%s">' % (self.resp.status, self._get_reason())
60
61 __str__ = __repr__
62
65 """The JSON returned could not be parsed."""
66 pass
67
70 """Link type unknown or unexpected."""
71 pass
72
75 """No API with that name and version exists."""
76 pass
77
80 """That is an unacceptable mimetype for this operation."""
81 pass
82
87
90 """Error occured during resumable upload."""
91 pass
92
95 """The given chunksize is not valid."""
96 pass
97
100 """Error occured during batch operations."""
101
102 @util.positional(2)
103 - def __init__(self, reason, resp=None, content=None):
104 self.resp = resp
105 self.content = content
106 self.reason = reason
107
109 return '<BatchError %s "%s">' % (self.resp.status, self.reason)
110
111 __str__ = __repr__
112
115 """Exception raised by RequestMockBuilder on unexpected calls."""
116
117 @util.positional(1)
119 """Constructor for an UnexpectedMethodError."""
120 super(UnexpectedMethodError, self).__init__(
121 'Received unexpected call %s' % methodId)
122
123
124 -class UnexpectedBodyError(Error):
125 """Exception raised by RequestMockBuilder on unexpected bodies."""
126
127 - def __init__(self, expected, provided):
128 """Constructor for an UnexpectedMethodError."""
129 super(UnexpectedBodyError, self).__init__(
130 'Expected: [%s] - Provided: [%s]' % (expected, provided))
131