2 new revisions:
Revision: 314d4a99a35e
Author: Pekka Klärck
Date: Thu May 5 14:07:27 2011
Log: simplify handling java types with _convert_to_number
http://code.google.com/p/robotframework/source/detail?r=314d4a99a35e
Revision: b4b2cd280434
Author: Pekka Klärck
Date: Thu May 5 14:15:47 2011
Log: fixed tests after ${42} -> int (not long)
http://code.google.com/p/robotframework/source/detail?r=b4b2cd280434
==============================================================================
Revision: 314d4a99a35e
Author: Pekka Klärck
Date: Thu May 5 14:07:27 2011
Log: simplify handling java types with _convert_to_number
http://code.google.com/p/robotframework/source/detail?r=314d4a99a35e
Modified:
/atest/testdata/standard_libraries/builtin/converter.txt
/src/robot/libraries/BuiltIn.py
=======================================
--- /atest/testdata/standard_libraries/builtin/converter.txt Thu May 5
13:48:40 2011
+++ /atest/testdata/standard_libraries/builtin/converter.txt Thu May 5
14:07:27 2011
@@ -30,7 +30,7 @@
Convert To Number ${OBJECT_FAILING}
Convert To Number With Java Objects
- [Documentation] FAIL STARTS: 'foobar' cannot be converted to a
floating point number: NumberFormatException:
+ [Documentation] FAIL STARTS: 'foobar' cannot be converted to a
floating point number: ValueError:
Test Convert To Number ${JAVA_STRING_INT} ${1.0}
Test Convert To Number ${JAVA_STRING_FLOAT} ${1.1}
Test Convert To Number ${JAVA_INTEGER} ${1.0}
=======================================
--- /src/robot/libraries/BuiltIn.py Thu May 5 13:48:40 2011
+++ /src/robot/libraries/BuiltIn.py Thu May 5 14:07:27 2011
@@ -26,7 +26,7 @@
from robot.version import get_version
if utils.is_jython:
- from java.lang import String, Number, Long, Double
+ from java.lang import String, Number
class _Converter:
@@ -39,17 +39,17 @@
def _convert_to_integer(self, item):
try:
if utils.is_jython:
- item = self._handle_java_types(item)
+ item = self._handle_java_numbers(item)
return int(item)
except:
raise RuntimeError("'%s' cannot be converted to an integer: %s"
% (item, utils.get_error_message()))
- def _handle_java_types(self, item):
+ def _handle_java_numbers(self, item):
if isinstance(item, String):
return utils.unic(item)
if isinstance(item, Number):
- return item.longValue()
+ return item.doubleValue()
return item
def convert_to_number(self, item):
@@ -60,26 +60,15 @@
def _convert_to_number(self, item):
try:
if utils.is_jython:
- return self._jython_to_number(item)
+ item = self._handle_java_numbers(item)
return float(item)
except:
error = utils.get_error_message()
try:
return float(self._convert_to_integer(item))
except RuntimeError:
- raise RuntimeError("'%s' cannot be converted to a floating
point "
- "number: %s" % (item, error))
-
- def _jython_to_number(self, item):
- # This helper handles Java Strings and Numbers
- try:
- return float(item)
- except (TypeError, AttributeError):
- if isinstance(item, String):
- return Double.parseDouble(item)
- if isinstance(item, Number):
- return item.doubleValue()
- raise
+ raise RuntimeError("'%s' cannot be converted to a
floating "
+ "point number: %s" % (item, error))
def convert_to_string(self, item):
"""Converts the given item to a Unicode string.
==============================================================================
Revision: b4b2cd280434
Author: Pekka Klärck
Date: Thu May 5 14:15:47 2011
Log: fixed tests after ${42} -> int (not long)
http://code.google.com/p/robotframework/source/detail?r=b4b2cd280434
Modified:
/atest/robot/keywords/trace_log_keyword_arguments.txt
/atest/robot/standard_libraries/builtin/verify.txt
/atest/testdata/keywords/return_values.txt
=======================================
--- /atest/robot/keywords/trace_log_keyword_arguments.txt Thu Aug 26
03:01:52 2010
+++ /atest/robot/keywords/trace_log_keyword_arguments.txt Thu May 5
14:15:47 2011
@@ -19,7 +19,7 @@
... u'mandatory'
Multiple Default Values
- Check Argument Value Trace \${a1}=u'10' | \${a2}=u'2' | \${a3}=u'30'
| \${a4}=4L
+ Check Argument Value Trace \${a1}=u'10' | \${a2}=u'2' | \${a3}=u'30'
| \${a4}=4
... u'10' | a3=u'30'
Named Arguments
@@ -48,8 +48,8 @@
Non String Object as Argument
Check Argument Value Trace \${mand}=True | \${default}=1.0
... True | default=1.0
- ... \${mand}=-123L | \@{vargs}=[1.0]
- ... -123L | 1.0
+ ... \${mand}=-123 | \@{vargs}=[1.0]
+ ... -123 | 1.0
None as Argument
Check UK Default, Library KW Default, UK Varargs and Library KW
Varargs None
=======================================
--- /atest/robot/standard_libraries/builtin/verify.txt Wed Apr 20 04:57:51
2011
+++ /atest/robot/standard_libraries/builtin/verify.txt Thu May 5 14:15:47
2011
@@ -32,18 +32,18 @@
Should Not Be Equal
${tc}= Check test case ${TESTNAME}
Verify argument type message ${tc.kws[0].msgs[0]} unicode unicode
- Verify argument type message ${tc.kws[1].msgs[0]} unicode long
+ Verify argument type message ${tc.kws[1].msgs[0]} unicode int
Verify argument type message ${tc.kws[2].msgs[0]} unicode unicode
Should Be Equal
${tc}= Check test case ${TESTNAME}
Verify argument type message ${tc.kws[0].msgs[0]} unicode unicode
- Verify argument type message ${tc.kws[1].msgs[0]} long long
+ Verify argument type message ${tc.kws[1].msgs[0]} int int
Verify argument type message ${tc.kws[2].msgs[0]} unicode unicode
Should Be Equal When Types Differ But String Representations Are Same
${tc}= Check test case ${TESTNAME}
- Verify argument type message ${tc.kws[0].msgs[0]} unicode long
+ Verify argument type message ${tc.kws[0].msgs[0]} unicode int
Should Not Be Equal As Integers
${tc}= Check test case ${TESTNAME}
@@ -67,7 +67,7 @@
Should Be Equal As Strings
${tc}= Check test case ${TESTNAME}
- Verify argument type message ${tc.kws[0].msgs[0]} long unicode
+ Verify argument type message ${tc.kws[0].msgs[0]} int unicode
Should Not Start With
Check test case ${TESTNAME}
=======================================
--- /atest/testdata/keywords/return_values.txt Tue Jun 8 03:52:39 2010
+++ /atest/testdata/keywords/return_values.txt Thu May 5 14:15:47 2011
@@ -103,7 +103,7 @@
${a} ${b} = Set Variable This is not list
List When No List Returned
- [Documentation] FAIL Cannot assign return values: Expected list-like
object, got long instead.
+ [Documentation] FAIL Cannot assign return values: Expected list-like
object, got int instead.
@{list} = Set Variable ${42}
List To Scalar And List Varibles