Skip to content
Snippets Groups Projects
Commit de4f53e6 authored by Michael Hanselmann's avatar Michael Hanselmann
Browse files

Support different HTTP error codes in RAPI client unittest mock


This allows testing error conditions (e.g. if a job wasn't found).

Signed-off-by: default avatarMichael Hanselmann <hansmi@google.com>
Reviewed-by: default avatarDavid Knowles <dknowles@google.com>
parent 09127904
No related branches found
No related tags found
No related merge requests found
......@@ -81,40 +81,32 @@ class OpenerDirectorMock:
class RapiMock(object):
def __init__(self):
self._mapper = connector.Mapper()
self._responses = []
self._last_handler = None
def AddResponse(self, response):
self._responses.insert(0, response)
def PopResponse(self):
if len(self._responses) > 0:
return self._responses.pop()
else:
return None
def AddResponse(self, response, code=200):
self._responses.insert(0, (code, response))
def GetLastHandler(self):
return self._last_handler
def FetchResponse(self, path, method):
code = 200
response = None
try:
HandlerClass, items, args = self._mapper.getController(path)
self._last_handler = HandlerClass(items, args, None)
if not hasattr(self._last_handler, method.upper()):
code = 501
response = "Method not implemented"
raise http.HttpNotImplemented(message="Method not implemented")
except http.HttpException, ex:
code = ex.code
response = ex.message
else:
if not self._responses:
raise Exception("No responses")
if not response:
response = self.PopResponse()
(code, response) = self._responses.pop()
return code, response
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment