Revision: 3340
Author: pekka.klarck
Date: Thu May 20 02:32:30 2010
Log: default val
http://code.google.com/p/robotframework/source/detail?r=3340

Modified:
 /trunk/src/robot/running/keywords.py
 /trunk/utest/running/test_keywords.py

=======================================
--- /trunk/src/robot/running/keywords.py        Wed May 19 23:35:23 2010
+++ /trunk/src/robot/running/keywords.py        Thu May 20 02:32:30 2010
@@ -53,9 +53,9 @@

 class Keyword(BaseKeyword):

-    def __init__(self, name, args, assign):
+    def __init__(self, name, args, assign=None):
         BaseKeyword.__init__(self, name, args)
-        self.assign = _Assignment(name, assign)
+        self.assign = _Assignment(name, assign or [])
         self.handler_name = name

     def run(self, context):
=======================================
--- /trunk/utest/running/test_keywords.py       Wed May 19 23:40:38 2010
+++ /trunk/utest/running/test_keywords.py       Thu May 20 02:32:30 2010
@@ -1,7 +1,6 @@
 import unittest

 from robot.errors import DataError, ExecutionFailed
-from robot.parsing.keywords import SetKeyword as SetKeywordData
 from robot.running.timeouts import KeywordTimeout
 from robot.running.keywords import Keyword
 from robot.utils.asserts import *
@@ -18,15 +17,14 @@

 class MockHandler:

-    type = 'mock'
-
     def __init__(self, name='Mock Handler', doc='Mock Doc', error=False):
         self.name = self.longname = name
         self.doc = self.shortdoc = doc
         self.error = error
         self.timeout = KeywordTimeout()

-    def init_keyword(self, varz): pass
+    def init_keyword(self, varz):
+        pass

     def run(self, context, args):
         """Sets given args to self.ags and optionally returns something.
@@ -100,41 +98,37 @@
         assert_equals(kw.handler_name, 'handler_name')


-class TestSetKeyword(unittest.TestCase):
-
-    def test_init_one_scalar_var(self):
-        skw = SetKeyword(SetKeywordData(['${var}','Set','x']))
-        assert_equal(skw.name, 'Set')
-        assert_equal(skw.scalar_vars, ['${var}'])
-        assert_none(skw.list_var)
-        assert_equal(skw.args, ['x'])
-
-    def test_init_three_scalar_vars(self):
- skw = SetKeyword(SetKeywordData('${v1} ${v2} ${v3} Set x y z'.split()))
-        assert_equal(skw.scalar_vars, ['${v1}','${v2}','${v3}'])
-        assert_none(skw.list_var)
-        assert_equal(skw.args, ['x','y','z'])
-
-    def test_init_list_var(self):
-        skw = SetKeyword(SetKeywordData(['@{list}','Set','x','y','z']))
-        assert_equal(skw.scalar_vars, [])
-        assert_equal(skw.list_var, '@{list}')
-        assert_equal(skw.args, ['x','y','z'])
-
-    def test_init_two_scalar_and_one_list_vars(self):
- skw = SetKeyword(SetKeywordData('${v1} ${v2} @{list} Set x y z'.split()))
-        assert_equal(skw.scalar_vars, ['${v1}','${v2}'])
-        assert_equal(skw.list_var, '@{list}')
-        assert_equal(skw.args, ['x','y','z'])
-
-    def test_init_no_vars_raises(self):
-        assert_raises(TypeError, SetKeywordData, ['Set','a'])
+class TestResolveAssignment(unittest.TestCase):
+
+    def test_one_scalar(self):
+        self._verify(['${var}'])
+
+    def test_multiple_scalars(self):
+        self._verify('${v1} ${v2} ${v3}'.split())
+
+    def test_list(self):
+        self._verify(['@{list}'])
+
+    def test_scalars_and_list(self):
+        self._verify('${v1} ${v2} @{list}'.split())

     def test_init_list_in_wrong_place_raises(self):
- assert_raises(DataError, SetKeywordData, ['@{list}','${str}','Set','a'])
-
-    def test_init_no_keyword_raises(self):
-        assert_raises(DataError, SetKeywordData, ['${var}'])
+ assert_raises(DataError, Keyword, 'Name', ['arg'], ['@{list}','${str}'])
+
+    def _verify(self, assign):
+        kw = Keyword('Name', ['arg'], assign)
+        if assign[-1][0] == '$':
+            exp_list = None
+        else:
+            exp_list = assign.pop()
+        assert_equal(kw.name, 'Name')
+        assert_equal(kw.args, ['arg'])
+        assert_equal(kw.assign.keyword, 'Name')
+        assert_equal(kw.assign.scalar_vars, assign)
+        assert_equal(kw.assign.list_var, exp_list)
+
+
+class TestX(unittest.TestCase):

     def test_set_string_to_scalar(self):
         skw = SetKeyword(SetKeywordData(['${var}','KW','RETURN','value']))

Reply via email to