diff --git a/lib/rapi/baserlib.py b/lib/rapi/baserlib.py
index bc3851945feaf74ef94304fd5a7780848bf0e158..deffd12d6dbdacf1879e3b8efb1868b158d8cbfd 100644
--- a/lib/rapi/baserlib.py
+++ b/lib/rapi/baserlib.py
@@ -274,16 +274,19 @@ class ResourceBase(object):
   POST_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.
 
     @param items: a list with variables encoded in the 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.queryargs = queryargs
     self._req = req
+    self._client_cls = _client_cls
 
   def _GetRequestBody(self):
     """Returns the body data.
@@ -366,7 +369,7 @@ class ResourceBase(object):
     """
     # Could be a function, pylint: disable=R0201
     try:
-      return luxi.Client()
+      return self._client_cls()
     except luxi.NoMasterError, err:
       raise http.HttpBadGateway("Can't connect to master daemon: %s" % err)
     except luxi.PermissionError: