Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(29)

Side by Side Diff: appengine/chromium_build_logs/third_party/apiclient/errors.py

Issue 1260293009: make version of ts_mon compatible with appengine (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: clean up code Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 #!/usr/bin/python2.4
2 #
3 # Copyright (C) 2010 Google Inc.
4 #
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
8 #
9 # http://www.apache.org/licenses/LICENSE-2.0
10 #
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
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.anyjson import simplejson
27
28
29 class Error(Exception):
30 """Base error for this module."""
31 pass
32
33
34 class HttpError(Error):
35 """HTTP data was invalid or unexpected."""
36
37 def __init__(self, resp, content, uri=None):
38 self.resp = resp
39 self.content = content
40 self.uri = uri
41
42 def _get_reason(self):
43 """Calculate the reason for the error from the response content."""
44 if self.resp.get('content-type', '').startswith('application/json'):
45 try:
46 data = simplejson.loads(self.content)
47 reason = data['error']['message']
48 except (ValueError, KeyError):
49 reason = self.content
50 else:
51 reason = self.resp.reason
52 return reason
53
54 def __repr__(self):
55 if self.uri:
56 return '<HttpError %s when requesting %s returned "%s">' % (
57 self.resp.status, self.uri, self._get_reason())
58 else:
59 return '<HttpError %s "%s">' % (self.resp.status, self._get_reason())
60
61 __str__ = __repr__
62
63
64 class InvalidJsonError(Error):
65 """The JSON returned could not be parsed."""
66 pass
67
68
69 class UnknownLinkType(Error):
70 """Link type unknown or unexpected."""
71 pass
72
73
74 class UnknownApiNameOrVersion(Error):
75 """No API with that name and version exists."""
76 pass
77
78
79 class UnacceptableMimeTypeError(Error):
80 """That is an unacceptable mimetype for this operation."""
81 pass
82
83
84 class MediaUploadSizeError(Error):
85 """Media is larger than the method can accept."""
86 pass
87
88
89 class ResumableUploadError(Error):
90 """Error occured during resumable upload."""
91 pass
92
93
94 class BatchError(HttpError):
95 """Error occured during batch operations."""
96
97 def __init__(self, reason, resp=None, content=None):
98 self.resp = resp
99 self.content = content
100 self.reason = reason
101
102 def __repr__(self):
103 return '<BatchError %s "%s">' % (self.resp.status, self.reason)
104
105 __str__ = __repr__
106
107
108 class UnexpectedMethodError(Error):
109 """Exception raised by RequestMockBuilder on unexpected calls."""
110
111 def __init__(self, methodId=None):
112 """Constructor for an UnexpectedMethodError."""
113 super(UnexpectedMethodError, self).__init__(
114 'Received unexpected call %s' % methodId)
115
116
117 class UnexpectedBodyError(Error):
118 """Exception raised by RequestMockBuilder on unexpected bodies."""
119
120 def __init__(self, expected, provided):
121 """Constructor for an UnexpectedMethodError."""
122 super(UnexpectedBodyError, self).__init__(
123 'Expected: [%s] - Provided: [%s]' % (expected, provided))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698