Author: janne.t.harkonen
Date: Tue Apr  7 05:11:46 2009
New Revision: 1712

Modified:
   trunk/src/robot/running/handlers.py
   trunk/src/robot/running/testlibraries.py

Log:
Fixed importing Java libraries using WITH NAME.

See issue 275 for details.

Modified: trunk/src/robot/running/handlers.py
==============================================================================
--- trunk/src/robot/running/handlers.py (original)
+++ trunk/src/robot/running/handlers.py Tue Apr  7 05:11:46 2009
@@ -66,17 +66,6 @@
         self.doc = ''
self.timeout = '' # Needed for set_attributes in runner.start_keyword

-    def copy(self, library):
-        handler = _RunnableHandler(library, self._handler_name, None)
-        self._copy_attributes(handler)
-        return handler
-
-    def _copy_attributes(self, handler):
-        handler._method = self._method
-        handler.minargs = self.minargs
-        handler.maxargs = self.maxargs
-        handler.doc = self.doc
-
     def run(self, output, namespace, args):
         """Executes the represented handler with given 'args'.

@@ -256,14 +245,13 @@
             args.append(varargs)
         return args

-
+
 class DynamicHandler(_RunnableHandler):

     def __init__(self, library, handler_name, handler_method, doc='',
-                 argspec=None, copy=False):
+                 argspec=None):
_RunnableHandler.__init__(self, library, handler_name, handler_method)
-        if not copy:
-            self._run_keyword_method_name = handler_method.__name__
+        self._run_keyword_method_name = handler_method.__name__
         self.doc = doc is not None and utils.unic(doc) or ''
self.args, self.defaults, self.varargs = self._get_arg_spec(argspec)
         self.minargs = len(self.args) - len(self.defaults)
@@ -313,12 +301,6 @@
             return runner(name, list(args))
         return handler

-    def copy(self, library):
- handler = DynamicHandler(library, self._handler_name, None, copy=True)
-        self._copy_attributes(handler)
-        handler._run_keyword_method_name = self._run_keyword_method_name
-        return handler
-

 class _NoInitHandler(BaseHandler):


Modified: trunk/src/robot/running/testlibraries.py
==============================================================================
--- trunk/src/robot/running/testlibraries.py    (original)
+++ trunk/src/robot/running/testlibraries.py    Tue Apr  7 05:11:46 2009
@@ -16,6 +16,7 @@
 import os
 import types
 import inspect
+import copy

 from robot import utils
 from robot.errors import DataError
@@ -88,7 +89,10 @@
         lib._init_scope_handling()
         lib.handlers = utils.NormalizedDict(ignore=['_'])
         for handler_name, handler in self.handlers.items():
-            lib.handlers[handler_name] = handler.copy(lib)
+            copied = copy.copy(handler)
+            copied.library = lib
+            copied.longname = '%s.%s' % (lib.name, copied.name)
+            lib.handlers[handler_name] = copied
         return lib

     def start_suite(self):

Reply via email to