Revision: 3608
Author: pekka.klarck
Date: Thu May 27 23:32:34 2010
Log: Jython 2.2a1 didn't have working inspect.getargspec but nowadays we
can use it directly.
http://code.google.com/p/robotframework/source/detail?r=3608
Modified:
/trunk/src/robot/running/arguments.py
=======================================
--- /trunk/src/robot/running/arguments.py Thu May 27 23:15:47 2010
+++ /trunk/src/robot/running/arguments.py Thu May 27 23:32:34 2010
@@ -71,32 +71,14 @@
def _get_arg_spec(self, handler):
"""Returns info about args in a tuple (args, defaults, varargs)
- args - tuple of all accepted arguments
- defaults - tuple of default values
+ args - list of all accepted arguments except varargs
+ defaults - list of default values
varargs - name of the argument accepting varargs or None
"""
- # Code below is based on inspect module's getargs and getargspec
- # methods. See their documentation and/or source for more details.
+ args, varargs, _, defaults = inspect.getargspec(handler)
if inspect.ismethod(handler):
- func = handler.im_func
- first_arg = 1 # this drops 'self' from methods' args
- elif inspect.isfunction(handler):
- func = handler
- first_arg = 0
- else:
- raise FrameworkError("Only MethodType and FunctionType
accepted. "
- "Got '%s' instead." %
type(handler).__name__)
- co = func.func_code
- nargs = co.co_argcount
- args = co.co_varnames[first_arg:nargs]
- defaults = func.func_defaults
- if defaults is None:
- defaults = ()
- if co.co_flags & 4: # 4 == CO_VARARGS
- varargs = co.co_varnames[nargs]
- else:
- varargs = None
- return args, defaults, varargs
+ args = args[1:] # drop 'self'
+ return args, defaults or [], varargs
class JavaKeywordArguments(_KeywordArguments):