Revision: 3706
Author: pekka.klarck
Date: Thu Jun  3 11:47:59 2010
Log: Better error message when replacing variables from user keyword return value fails (issue 569)
http://code.google.com/p/robotframework/source/detail?r=3706

Modified:
 /trunk/atest/robot/keywords/user_keyword_return_values.txt
 /trunk/atest/testdata/keywords/user_keyword_return_values.txt
 /trunk/src/robot/running/userkeyword.py

=======================================
--- /trunk/atest/robot/keywords/user_keyword_return_values.txt Tue Apr 13 03:19:23 2010 +++ /trunk/atest/robot/keywords/user_keyword_return_values.txt Thu Jun 3 11:47:59 2010
@@ -5,26 +5,28 @@

 *** Test Cases ***
 Return Nothing
-    Check Test Case  Return Nothing
+    Check Test Case  ${TESTNAME}

 Return One String
-    Check Test Case  Return One String
+    Check Test Case  ${TESTNAME}

 Return Multiple Strings
-    Check Test Case  Return Multiple Strings
+    Check Test Case  ${TESTNAME}

 Return One Scalar Variable
-    Check Test Case  Return One Scalar Variable
+    Check Test Case  ${TESTNAME}

 Return Multiple Scalar Variables
-    Check Test Case  Return Multiple Scalar Variables
+    Check Test Case  ${TESTNAME}

 Return Empty List Variable
-    Check Test Case  Return Empty List Variable
+    Check Test Case  ${TESTNAME}

 Return List Variable Containing One Item
-    Check Test Case  Return List Variable Containing One Item
+    Check Test Case  ${TESTNAME}

 Return List Variable Containing Multiple Items
-    Check Test Case  Return List Variable Containing Multiple Items
-
+    Check Test Case  ${TESTNAME}
+
+Return Non-Existing Variable
+    Check Test Case  ${TESTNAME}
=======================================
--- /trunk/atest/testdata/keywords/user_keyword_return_values.txt Tue Apr 13 03:19:23 2010 +++ /trunk/atest/testdata/keywords/user_keyword_return_values.txt Thu Jun 3 11:47:59 2010
@@ -44,6 +44,11 @@
     ${ret1}  ${ret2} =  Return List Variable  string  ${42}
     Equals  ${ret1}  string
     Equals  ${ret2}  ${42}
+
+Return Non-Existing Variable
+ [Documentation] FAIL Replacing variables from keyword return value failed: Non-existing variable '\${nonex}'.
+    Return Non-Existing Variable
+

 *** Keywords ***
 No Return At All
@@ -70,3 +75,5 @@
     [Arguments]  @{args}
     [Return]  @{args}

+Return Non-Existing Variable
+    [Return]  ${nonex}
=======================================
--- /trunk/src/robot/running/userkeyword.py     Mon May 31 05:21:54 2010
+++ /trunk/src/robot/running/userkeyword.py     Thu Jun  3 11:47:59 2010
@@ -159,7 +159,11 @@
     def _get_return_value(self, variables):
         if not self.return_value:
             return None
-        ret = variables.replace_list(self.return_value)
+        try:
+            ret = variables.replace_list(self.return_value)
+        except DataError, err:
+ raise DataError('Replacing variables from keyword return value '
+                            'failed: %s' % unicode(err))
         if len(ret) != 1 or is_list_var(self.return_value[0]):
             return ret
         return ret[0]

Reply via email to