Skip to content

Commit d390bcc

Browse files
committed
Handle stop_remote_server fully in server itself
1 parent 63117cd commit d390bcc

File tree

2 files changed

+7
-10
lines changed

2 files changed

+7
-10
lines changed

src/robotremoteserver.py

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ def __init__(self, library, host='127.0.0.1', port=8270, port_file=None,
6363
``Stop Remote Server`` keyword.
6464
"""
6565
SimpleXMLRPCServer.__init__(self, (host, int(port)), logRequests=False)
66-
self._library = RemoteLibrary(library, self.stop_remote_server)
66+
self._library = RemoteLibrary(library)
6767
self._allow_stop = allow_stop
6868
self._shutdown = False
6969
self._register_functions()
@@ -127,10 +127,12 @@ def _write_to_stream(self, msg, stream):
127127
stream.flush()
128128

129129
def get_keyword_names(self):
130-
return self._library.get_keyword_names()
130+
return self._library.get_keyword_names() + ['stop_remote_server']
131131

132132
def run_keyword(self, name, args, kwargs=None):
133-
return self._library.run_keyword(name, args, kwargs)
133+
if name != 'stop_remote_server':
134+
return self._library.run_keyword(name, args, kwargs)
135+
return KeywordRunner(self.stop_remote_server).run_keyword(args, kwargs)
134136

135137
def get_keyword_arguments(self, name):
136138
return self._library.get_keyword_arguments(name)
@@ -141,9 +143,8 @@ def get_keyword_documentation(self, name):
141143

142144
class RemoteLibrary(object):
143145

144-
def __init__(self, library, stop_remote_server=None):
146+
def __init__(self, library):
145147
self._library = library
146-
self._stop_remote_server = stop_remote_server
147148

148149
def get_keyword_names(self):
149150
get_kw_names = (getattr(self._library, 'get_keyword_names', None) or
@@ -153,8 +154,6 @@ def get_keyword_names(self):
153154
else:
154155
names = [attr for attr in dir(self._library) if attr[0] != '_' and
155156
self._is_function_or_method(getattr(self._library, attr))]
156-
if self._stop_remote_server:
157-
names.append('stop_remote_server')
158157
return names
159158

160159
def _is_function_or_method(self, item):
@@ -165,8 +164,6 @@ def run_keyword(self, name, args, kwargs=None):
165164
return KeywordRunner(kw).run_keyword(args, kwargs)
166165

167166
def _get_keyword(self, name):
168-
if name == 'stop_remote_server':
169-
return self._stop_remote_server
170167
kw = getattr(self._library, name, None)
171168
if not self._is_function_or_method(kw):
172169
return None

test/utest/test_robotremoteserver.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
class NonServingRemoteServer(RobotRemoteServer):
1010

1111
def __init__(self, library):
12-
self._library = RemoteLibrary(library, self.stop_remote_server)
12+
self._library = RemoteLibrary(library)
1313

1414

1515
class StaticLibrary:

0 commit comments

Comments
 (0)