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

baserlib.ResourceBase: Allow overriding of LUXI client


This enables unittesting of RAPI resources.

Signed-off-by: default avatarMichael Hanselmann <hansmi@google.com>
Reviewed-by: default avatarRené Nussbaumer <rn@google.com>
parent c08fd0d6
No related branches found
No related tags found
No related merge requests found
...@@ -274,16 +274,19 @@ class ResourceBase(object): ...@@ -274,16 +274,19 @@ class ResourceBase(object):
POST_ACCESS = [rapi.RAPI_ACCESS_WRITE] POST_ACCESS = [rapi.RAPI_ACCESS_WRITE]
DELETE_ACCESS = [rapi.RAPI_ACCESS_WRITE] DELETE_ACCESS = [rapi.RAPI_ACCESS_WRITE]
def __init__(self, items, queryargs, req): def __init__(self, items, queryargs, req, _client_cls=luxi.Client):
"""Generic resource constructor. """Generic resource constructor.
@param items: a list with variables encoded in the URL @param items: a list with variables encoded in the URL
@param queryargs: a dictionary with additional options from URL @param queryargs: a dictionary with additional options from URL
@param req: Request context
@param _client_cls: L{luxi} client class (unittests only)
""" """
self.items = items self.items = items
self.queryargs = queryargs self.queryargs = queryargs
self._req = req self._req = req
self._client_cls = _client_cls
def _GetRequestBody(self): def _GetRequestBody(self):
"""Returns the body data. """Returns the body data.
...@@ -366,7 +369,7 @@ class ResourceBase(object): ...@@ -366,7 +369,7 @@ class ResourceBase(object):
""" """
# Could be a function, pylint: disable=R0201 # Could be a function, pylint: disable=R0201
try: try:
return luxi.Client() return self._client_cls()
except luxi.NoMasterError, err: except luxi.NoMasterError, err:
raise http.HttpBadGateway("Can't connect to master daemon: %s" % err) raise http.HttpBadGateway("Can't connect to master daemon: %s" % err)
except luxi.PermissionError: except luxi.PermissionError:
......
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