Skip to content

Commit d96bbac

Browse files
author
Erich-McMillan
committed
Update constructor to be backward compatiable
Also updates library property to be plural
1 parent 13d739e commit d96bbac

File tree

1 file changed

+18
-14
lines changed

1 file changed

+18
-14
lines changed

src/robotremoteserver.py

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,12 @@ def getfullargspec(func):
5252

5353
class RobotRemoteServer(object):
5454

55-
def __init__(self, library, host='127.0.0.1', port=8270, port_file=None,
55+
def __init__(self, libraries, host='127.0.0.1', port=8270, port_file=None,
5656
allow_stop='DEPRECATED', serve=True, allow_remote_stop=True):
5757
"""Configure and start-up remote server.
5858
59-
:param library: Test library instance or module to host.
59+
:param libraries: Test library instance or module to host, can be a
60+
list of modules to host.
6061
:param host: Address to listen. Use ``'0.0.0.0'`` to listen
6162
to all available interfaces.
6263
:param port: Port to listen. Use ``0`` to select a free port
@@ -74,8 +75,11 @@ def __init__(self, library, host='127.0.0.1', port=8270, port_file=None,
7475
``Stop Remote Server`` keyword and
7576
``stop_remote_server`` XML-RPC method.
7677
"""
77-
self._library = [RemoteLibraryFactory(library_)
78-
for library_ in library]
78+
if isinstance(libraries, list):
79+
self._libraries = [RemoteLibraryFactory(library_)
80+
for library_ in libraries]
81+
else:
82+
self._libraries = [RemoteLibraryFactory(libraries)]
7983
self._server = StoppableXMLRPCServer(host, int(port))
8084
self._register_functions(self._server)
8185
self._port_file = port_file
@@ -173,33 +177,33 @@ def stop_remote_server(self, log=True):
173177

174178
def get_keyword_names(self):
175179
keywords = ['stop_remote_server']
176-
for l in self._library:
180+
for l in self._libraries:
177181
keywords += l.get_keyword_names()
178182
return keywords
179183

180184
def run_keyword(self, name, args, kwargs=None):
181185
if name == 'stop_remote_server':
182186
return KeywordRunner(self.stop_remote_server).run_keyword(args, kwargs)
183-
library_ = next(l for l in self._library if name in l._names)
187+
library_ = next(l for l in self._libraries if name in l._names)
184188
return library_.run_keyword(name, args, kwargs)
185189

186190
def get_keyword_arguments(self, name):
187191
if name == 'stop_remote_server':
188192
return []
189-
library_ = next(l for l in self._library if name in l._names)
193+
library_ = next(l for l in self._libraries if name in l._names)
190194
return library_.get_keyword_arguments(name)
191195

192196
def get_keyword_documentation(self, name):
193197
if name == 'stop_remote_server':
194198
return ('Stop the remote server unless stopping is disabled.\n\n'
195199
'Return ``True/False`` depending was server stopped or not.')
196-
library_ = next(l for l in self._library if name in l._names)
200+
library_ = next(l for l in self._libraries if name in l._names)
197201
return library_.get_keyword_documentation(name)
198202

199203
def get_keyword_tags(self, name):
200204
if name == 'stop_remote_server':
201205
return []
202-
library_ = next(l for l in self._library if name in l._names)
206+
library_ = next(l for l in self._libraries if name in l._names)
203207
return library_.get_keyword_tags(name)
204208

205209

@@ -288,7 +292,7 @@ def is_function_or_method(item):
288292
class StaticRemoteLibrary(object):
289293

290294
def __init__(self, library):
291-
self._library = library
295+
self._libraries = library
292296
self._names, self._robot_name_index = self._get_keyword_names(library)
293297

294298
def _get_keyword_names(self, library):
@@ -313,7 +317,7 @@ def run_keyword(self, name, args, kwargs=None):
313317
def _get_keyword(self, name):
314318
if name in self._robot_name_index:
315319
name = self._robot_name_index[name]
316-
return getattr(self._library, name)
320+
return getattr(self._libraries, name)
317321

318322
def get_keyword_arguments(self, name):
319323
if __name__ == '__init__':
@@ -333,9 +337,9 @@ def get_keyword_arguments(self, name):
333337

334338
def get_keyword_documentation(self, name):
335339
if name == '__intro__':
336-
source = self._library
340+
source = self._libraries
337341
elif name == '__init__':
338-
source = self._get_init(self._library)
342+
source = self._get_init(self._libraries)
339343
else:
340344
source = self._get_keyword(name)
341345
return inspect.getdoc(source) or ''
@@ -620,4 +624,4 @@ def parse_args(script, *args):
620624

621625
action, uri = parse_args(*sys.argv)
622626
success = action(uri)
623-
sys.exit(0 if success else 1)
627+
sys.exit(0 if success else 1)

0 commit comments

Comments
 (0)