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]