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):