Skip to content

Commit 6e6113e

Browse files
author
Erich-McMillan
committed
Update constructor to be backward compatiable
Also updates library property to be plural
1 parent 55df859 commit 6e6113e

File tree

1 file changed

+18
-14
lines changed

1 file changed

+18
-14
lines changed

src/robotremoteserver.py

+18-14
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,12 @@
4848

4949
class RobotRemoteServer(object):
5050

51-
def __init__(self, library, host='127.0.0.1', port=8270, port_file=None,
51+
def __init__(self, libraries, host='127.0.0.1', port=8270, port_file=None,
5252
allow_stop='DEPRECATED', serve=True, allow_remote_stop=True):
5353
"""Configure and start-up remote server.
5454
55-
:param library: Test library instance or module to host.
55+
:param libraries: Test library instance or module to host, can be a
56+
list of modules to host.
5657
:param host: Address to listen. Use ``'0.0.0.0'`` to listen
5758
to all available interfaces.
5859
:param port: Port to listen. Use ``0`` to select a free port
@@ -70,8 +71,11 @@ def __init__(self, library, host='127.0.0.1', port=8270, port_file=None,
7071
``Stop Remote Server`` keyword and
7172
``stop_remote_server`` XML-RPC method.
7273
"""
73-
self._library = [RemoteLibraryFactory(library_)
74-
for library_ in library]
74+
if isinstance(libraries, list):
75+
self._libraries = [RemoteLibraryFactory(library_)
76+
for library_ in libraries]
77+
else:
78+
self._libraries = [RemoteLibraryFactory(libraries)]
7579
self._server = StoppableXMLRPCServer(host, int(port))
7680
self._register_functions(self._server)
7781
self._port_file = port_file
@@ -169,33 +173,33 @@ def stop_remote_server(self, log=True):
169173

170174
def get_keyword_names(self):
171175
keywords = ['stop_remote_server']
172-
for l in self._library:
176+
for l in self._libraries:
173177
keywords += l.get_keyword_names()
174178
return keywords
175179

176180
def run_keyword(self, name, args, kwargs=None):
177181
if name == 'stop_remote_server':
178182
return KeywordRunner(self.stop_remote_server).run_keyword(args, kwargs)
179-
library_ = next(l for l in self._library if name in l._names)
183+
library_ = next(l for l in self._libraries if name in l._names)
180184
return library_.run_keyword(name, args, kwargs)
181185

182186
def get_keyword_arguments(self, name):
183187
if name == 'stop_remote_server':
184188
return []
185-
library_ = next(l for l in self._library if name in l._names)
189+
library_ = next(l for l in self._libraries if name in l._names)
186190
return library_.get_keyword_arguments(name)
187191

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

195199
def get_keyword_tags(self, name):
196200
if name == 'stop_remote_server':
197201
return []
198-
library_ = next(l for l in self._library if name in l._names)
202+
library_ = next(l for l in self._libraries if name in l._names)
199203
return library_.get_keyword_tags(name)
200204

201205

@@ -284,7 +288,7 @@ def is_function_or_method(item):
284288
class StaticRemoteLibrary(object):
285289

286290
def __init__(self, library):
287-
self._library = library
291+
self._libraries = library
288292
self._names, self._robot_name_index = self._get_keyword_names(library)
289293

290294
def _get_keyword_names(self, library):
@@ -309,7 +313,7 @@ def run_keyword(self, name, args, kwargs=None):
309313
def _get_keyword(self, name):
310314
if name in self._robot_name_index:
311315
name = self._robot_name_index[name]
312-
return getattr(self._library, name)
316+
return getattr(self._libraries, name)
313317

314318
def get_keyword_arguments(self, name):
315319
if __name__ == '__init__':
@@ -329,9 +333,9 @@ def get_keyword_arguments(self, name):
329333

330334
def get_keyword_documentation(self, name):
331335
if name == '__intro__':
332-
source = self._library
336+
source = self._libraries
333337
elif name == '__init__':
334-
source = self._get_init(self._library)
338+
source = self._get_init(self._libraries)
335339
else:
336340
source = self._get_keyword(name)
337341
return inspect.getdoc(source) or ''
@@ -616,4 +620,4 @@ def parse_args(script, *args):
616620

617621
action, uri = parse_args(*sys.argv)
618622
success = action(uri)
619-
sys.exit(0 if success else 1)
623+
sys.exit(0 if success else 1)

0 commit comments

Comments
 (0)