Revision: 3612
Author: janne.t.harkonen
Date: Fri May 28 00:22:31 2010
Log: Moved PublicUserLibrary to proper place, do transformations only needed by libdoc there
http://code.google.com/p/robotframework/source/detail?r=3612

Modified:
 /trunk/src/robot/running/__init__.py
 /trunk/src/robot/running/userkeyword.py

=======================================
--- /trunk/src/robot/running/__init__.py        Thu May  6 00:18:28 2010
+++ /trunk/src/robot/running/__init__.py        Fri May 28 00:22:31 2010
@@ -16,11 +16,29 @@
 from model import TestSuite
 from keywords import Keyword
 from testlibraries import TestLibrary
-from userkeyword import PublicUserLibrary as UserLibrary
 from runkwregister import RUN_KW_REGISTER
 from signalhandler import STOP_SIGNAL_MONITOR


+def UserLibrary(path):
+    """Create a user library instance from given resource file.
+
+    This is used at least by libdoc.py."""
+    from robot.parsing import ResourceFile
+    from robot import utils
+    from arguments import UserKeywordArguments
+    from userkeyword import UserLibrary as RuntimeUserLibrary
+
+    resource = ResourceFile(path)
+    ret = RuntimeUserLibrary(resource.keyword_table.keywords, path)
+ for handler in ret.handlers.values(): # This is done normally only at runtime.
+        handler.arguments = UserKeywordArguments(handler._keyword_args,
+                                                 handler.longname)
+        handler.doc = utils.unescape(handler._doc)
+    ret.doc = resource.setting_table.doc.value
+    return ret
+
+
 class _Namespaces:

     def __init__(self):
=======================================
--- /trunk/src/robot/running/userkeyword.py     Mon May 24 09:14:53 2010
+++ /trunk/src/robot/running/userkeyword.py     Fri May 28 00:22:31 2010
@@ -25,17 +25,8 @@
 from arguments import UserKeywordArguments


-def PublicUserLibrary(path):
-    """Create a user library instance from given resource file."""
-    from robot.parsing import ResourceFile
-
-    resource = ResourceFile(path)
-    ret = UserLibrary(resource.user_keywords, path)
-    ret.doc = resource.doc
-    return ret
-
-
 class UserLibrary(BaseLibrary):
+    supports_named_arguments = True # this attribute is for libdoc

     def __init__(self, user_keywords, path=None):
         self.name = self._get_name_for_resource_file(path)
@@ -115,10 +106,9 @@
         self.return_value = keyword.return_.value

     def _set_variable_dependent_settings(self, keyword):
+        # TODO: Is this method really needed?
         self._doc = keyword.doc.value
         self._timeout = (keyword.timeout.value, keyword.timeout.message)
-        # FIXME: do we need this? Does libdoc need this?
-        self.doc = utils.unescape(self._doc)
         self.timeout = [ utils.unescape(item) for item in self._timeout ]

     def init_keyword(self, varz):

Reply via email to