Revision: cf6a3fd8eed8
Author:   Janne Härkönen <[email protected]>
Date:     Fri Sep 16 02:09:55 2011
Log:      robotremoteserver: compatibility with new Dynamic API

Handle special names __intro__ and __init__ when resolving
keyword names and arguments.

Update issue 186
http://code.google.com/p/robotframework/source/detail?r=cf6a3fd8eed8

Modified:
 /tools/remoteserver/robotremoteserver.py

=======================================
--- /tools/remoteserver/robotremoteserver.py    Thu May 26 14:09:21 2011
+++ /tools/remoteserver/robotremoteserver.py    Fri Sep 16 02:09:55 2011
@@ -91,6 +91,9 @@

     def get_keyword_arguments(self, name):
         kw = self._get_keyword(name)
+        return self._arguments_from_kw(kw) if kw else []
+
+    def _arguments_from_kw(self, kw):
         args, varargs, _, defaults = inspect.getargspec(kw)
         if inspect.ismethod(kw):
             args = args[1:]  # drop 'self'
@@ -102,12 +105,17 @@
         return args

     def get_keyword_documentation(self, name):
+        if name == '__intro__':
+            return inspect.getdoc(self._library)
+        if name == '__init__' and inspect.ismodule(self._library):
+            return ''
         return inspect.getdoc(self._get_keyword(name)) or ''

     def _get_keyword(self, name):
         if name == 'stop_remote_server':
             return self.stop_remote_server
-        return getattr(self._library, name)
+        kw = getattr(self._library, name, None)
+        return kw if inspect.isroutine(kw) else None

     def _get_error_details(self):
         exc_type, exc_value, exc_tb = sys.exc_info()

Reply via email to