Skip to content

Commit ed1ae0f

Browse files
zeinababbasiErich-McMillan
authored and
Erich-McMillan
committed
serving multiple classes by one single server
Changes has been made to support serving a list of libraries: robotframework#19
1 parent 79198fd commit ed1ae0f

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

src/robotremoteserver.py

+14-6
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@ def __init__(self, library, host='127.0.0.1', port=8270, port_file=None,
7474
``Stop Remote Server`` keyword and
7575
``stop_remote_server`` XML-RPC method.
7676
"""
77-
self._library = RemoteLibraryFactory(library)
77+
self._library = [RemoteLibraryFactory(library_)
78+
for library_ in library]
7879
self._server = StoppableXMLRPCServer(host, int(port))
7980
self._register_functions(self._server)
8081
self._port_file = port_file
@@ -171,28 +172,35 @@ def stop_remote_server(self, log=True):
171172
return True
172173

173174
def get_keyword_names(self):
174-
return self._library.get_keyword_names() + ['stop_remote_server']
175+
keywords = ['stop_remote_server']
176+
for l in self._library:
177+
keywords += l.get_keyword_names()
178+
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-
return self._library.run_keyword(name, args, kwargs)
183+
library_ = next(l for l in self._library if name in l._names)
184+
return library_.run_keyword(name, args, kwargs)
180185

181186
def get_keyword_arguments(self, name):
182187
if name == 'stop_remote_server':
183188
return []
184-
return self._library.get_keyword_arguments(name)
189+
library_ = next(l for l in self._library if name in l._names)
190+
return library_.get_keyword_arguments(name)
185191

186192
def get_keyword_documentation(self, name):
187193
if name == 'stop_remote_server':
188194
return ('Stop the remote server unless stopping is disabled.\n\n'
189195
'Return ``True/False`` depending was server stopped or not.')
190-
return self._library.get_keyword_documentation(name)
196+
library_ = next(l for l in self._library if name in l._names)
197+
return library_.get_keyword_documentation(name)
191198

192199
def get_keyword_tags(self, name):
193200
if name == 'stop_remote_server':
194201
return []
195-
return self._library.get_keyword_tags(name)
202+
library_ = next(l for l in self._library if name in l._names)
203+
return library_.get_keyword_tags(name)
196204

197205

198206
class StoppableXMLRPCServer(SimpleXMLRPCServer):

0 commit comments

Comments
 (0)