Revision: 2924
Author: KariHusa
Date: Mon Apr 12 03:47:17 2010
Log: Merge branch 'kwargs'
http://code.google.com/p/robotframework/source/detail?r=2924

Modified:
 /trunk/src/robot/running/arguments.py

=======================================
--- /trunk/src/robot/running/arguments.py       Mon Apr 12 03:23:02 2010
+++ /trunk/src/robot/running/arguments.py       Mon Apr 12 03:47:17 2010
@@ -31,7 +31,9 @@
         self._name = kw_or_lib_name

     def resolve(self, args, variables=None):
-        return self._get_argument_resolver().resolve(args, variables)
+ posargs, namedargs = self._get_argument_resolver().resolve(args, variables)
+        self.check_arg_limits(posargs, namedargs)
+        return posargs, namedargs

     def check_arg_limits(self, args, namedargs={}):
         arg_count = len(args) + len(namedargs)
@@ -259,15 +261,10 @@
self._mand_arg_count = len(arguments.names) - len(arguments.defaults)

     def resolve(self, values, variables=None):
- posargs, namedargs = self._resolve_pos_and_named_arguments(values, variables)
-        self._arguments.check_arg_limits(posargs, namedargs)
-        return posargs, namedargs
-
-    def _resolve_pos_and_named_arguments(self, values, variables=None):
-        positional, named = self._resolve_argument_usage(values, variables)
+        positional, named = self._resolve_argument_usage(values)
         return self._resolve_variables(positional, named, variables)

-    def _resolve_argument_usage(self, values, variables):
+    def _resolve_argument_usage(self, values):
         positional = []
         named = {}
         named_args_allowed = True
@@ -334,27 +331,6 @@

 class UserKeywordArgumentResolver(_ArgumentResolver):

-    def resolve(self, values):
-        self._optional_values = values[self._mand_arg_count:]
-        posargs, kwargs = self._resolve_optional_args()
-        posargs = values[:self._mand_arg_count] + list(posargs)
-        return posargs, kwargs
-
-    def _resolve_optional_args(self, variables=None):
-        posargs = []
-        kwargs = {}
-        kwargs_allowed = True
-        for arg in reversed(self._optional_values):
-            if kwargs_allowed and self._is_named(arg):
-                name, value = self._parse_named(arg)
-                if name in kwargs:
- raise RuntimeError('Keyword argument %s repeated.' % name)
-                kwargs[name] = self._replace_scalar(value, variables)
-            else:
-                posargs.append(self._parse_positional(arg))
-                kwargs_allowed = False
-        return reversed(posargs), kwargs
-
     def _arg_name(self, name):
         return '${%s}' % name

Reply via email to