@@ -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
142144class 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
0 commit comments