4 new revisions:
Revision: 4b1effec2640
Author: Pekka Klärck
Date: Thu May 5 13:47:00 2011
Log: cleanup
http://code.google.com/p/robotframework/source/detail?r=4b1effec2640
Revision: ab8340b006c0
Author: Pekka Klärck
Date: Thu May 5 13:48:40 2011
Log: simplify handling java types in _convert_to_integer - jython 2.5
handl...
http://code.google.com/p/robotframework/source/detail?r=ab8340b006c0
Revision: e77528b3d064
Author: Pekka Klärck
Date: Thu May 5 13:58:17 2011
Log: Create the value of integer variables like ${42} with `int` not
with `...
http://code.google.com/p/robotframework/source/detail?r=e77528b3d064
Revision: 2a553bd595d7
Author: Pekka Klärck
Date: Thu May 5 14:00:00 2011
Log: cleanup, mostly possible now when we don't need to support jython
2.2
http://code.google.com/p/robotframework/source/detail?r=2a553bd595d7
==============================================================================
Revision: 4b1effec2640
Author: Pekka Klärck
Date: Thu May 5 13:47:00 2011
Log: cleanup
http://code.google.com/p/robotframework/source/detail?r=4b1effec2640
Modified:
/atest/robot/standard_libraries/builtin/converter.txt
=======================================
--- /atest/robot/standard_libraries/builtin/converter.txt Wed Apr 20
05:19:54 2011
+++ /atest/robot/standard_libraries/builtin/converter.txt Thu May 5
13:47:00 2011
@@ -9,33 +9,33 @@
*** Test Cases ***
Convert To Integer
- ${tc}= Check testcase Convert To Integer
+ ${tc}= Check Test Case ${TEST NAME}
Verify argument type message ${tc.kws[0].kws[0].msgs[0]} unicode
Convert To Integer With Java Objects
[Tags] jybot
- ${tc}= Check testcase Convert To Integer With Java Objects
+ ${tc}= Check Test Case ${TEST NAME}
Verify argument type message ${tc.kws[0].kws[0].msgs[0]}
java.lang.String
Convert To Number
- ${tc}= Check testcase Convert To Number
+ ${tc}= Check Test Case ${TEST NAME}
Verify argument type message ${tc.kws[0].kws[0].msgs[0]} unicode
Convert To Number With Java Objects
[Tags] jybot
- ${tc}= Check testcase Convert To Number With Java Objects
+ ${tc}= Check Test Case ${TEST NAME}
Verify argument type message ${tc.kws[0].kws[0].msgs[0]}
java.lang.String
Convert To String
- ${tc}= Check testcase Convert To String
+ ${tc}= Check Test Case ${TEST NAME}
Verify argument type message ${tc.kws[0].msgs[0]} unicode
Convert To Boolean
- ${tc}= Check testcase Convert To Boolean
+ ${tc}= Check Test Case ${TEST NAME}
Verify argument type message ${tc.kws[0].msgs[0]} unicode
Create List
- Check testcase Create List
+ Check Test Case ${TEST NAME}
*** Keywords ***
==============================================================================
Revision: ab8340b006c0
Author: Pekka Klärck
Date: Thu May 5 13:48:40 2011
Log: simplify handling java types in _convert_to_integer - jython 2.5
handles overflow automatically
http://code.google.com/p/robotframework/source/detail?r=ab8340b006c0
Modified:
/atest/testdata/standard_libraries/builtin/converter.txt
/src/robot/libraries/BuiltIn.py
=======================================
--- /atest/testdata/standard_libraries/builtin/converter.txt Mon Mar 29
04:29:59 2010
+++ /atest/testdata/standard_libraries/builtin/converter.txt Thu May 5
13:48:40 2011
@@ -12,7 +12,7 @@
Convert To Integer ${OBJECT_FAILING}
Convert To Integer With Java Objects
- [Documentation] FAIL STARTS: 'foobar' cannot be converted to an
integer: NumberFormatException:
+ [Documentation] FAIL STARTS: 'foobar' cannot be converted to an
integer: ValueError:
Test Convert To Integer ${JAVA_STRING_INT}
Test Convert To Integer ${JAVA_INTEGER}
Test Convert To Integer ${JAVA_LONG}
=======================================
--- /src/robot/libraries/BuiltIn.py Wed Apr 20 04:57:20 2011
+++ /src/robot/libraries/BuiltIn.py Thu May 5 13:48:40 2011
@@ -39,25 +39,18 @@
def _convert_to_integer(self, item):
try:
if utils.is_jython:
- return self._jython_to_integer(item)
+ item = self._handle_java_types(item)
return int(item)
except:
raise RuntimeError("'%s' cannot be converted to an integer: %s"
- % (item, utils.get_error_message()))
-
- def _jython_to_integer(self, item):
- # This helper handles Java Strings and Numbers as well as Jython
- # not handling overflow automatically
- try:
- return int(item)
- except ValueError:
- return long(item)
- except TypeError:
- if isinstance(item, String):
- return Long.parseLong(item)
- if isinstance(item, Number):
- return item.longValue()
- raise
+ % (item, utils.get_error_message()))
+
+ def _handle_java_types(self, item):
+ if isinstance(item, String):
+ return utils.unic(item)
+ if isinstance(item, Number):
+ return item.longValue()
+ return item
def convert_to_number(self, item):
"""Converts the given item to a floating point number."""
==============================================================================
Revision: e77528b3d064
Author: Pekka Klärck
Date: Thu May 5 13:58:17 2011
Log: Create the value of integer variables like ${42} with `int` not
with `long`.
Update issue 834
Status: Done
http://code.google.com/p/robotframework/source/detail?r=e77528b3d064
Modified:
/src/robot/variables/variables.py
=======================================
--- /src/robot/variables/variables.py Wed May 4 04:39:15 2011
+++ /src/robot/variables/variables.py Thu May 5 13:58:17 2011
@@ -110,7 +110,7 @@
raise ValueError
base = self._normalize(name)[2:-1]
try:
- return long(base)
+ return int(base)
except ValueError:
return float(base)
==============================================================================
Revision: 2a553bd595d7
Author: Pekka Klärck
Date: Thu May 5 14:00:00 2011
Log: cleanup, mostly possible now when we don't need to support jython
2.2
http://code.google.com/p/robotframework/source/detail?r=2a553bd595d7
Modified:
/src/robot/running/javaargcoercer.py
=======================================
--- /src/robot/running/javaargcoercer.py Sun Feb 6 01:24:10 2011
+++ /src/robot/running/javaargcoercer.py Thu May 5 14:00:00 2011
@@ -12,9 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-
import sys
-
from java.lang import Byte, Short, Integer, Long, Boolean, Float, Double
from robot.errors import DataError
@@ -24,35 +22,31 @@
def __init__(self, signatures):
types = self._parse_types(signatures)
- self._coercers = [ _CoercionFunction(t, i+1) for i, t in types ]
+ self._coercers = [_CoercionFunction(t, i+1) for i, t in types]
def _parse_types(self, signatures):
types = {}
for sig in signatures:
for index, arg in enumerate(sig.args):
types.setdefault(index, []).append(arg)
- types = types.items()
- types.sort()
- return types
+ return sorted(types.items())
def __call__(self, args):
- return [ coercer(arg) for coercer, arg in zip(self._coercers,
args) ]
+ return [coercer(arg) for coercer, arg in zip(self._coercers, args)]
class _CoercionFunction:
-
_bool_types = [Boolean]
_int_types = [Byte, Short, Integer, Long]
_float_types = [Float, Double]
_bool_primitives = ['boolean']
_int_primitives = ['byte', 'short', 'int', 'long']
_float_primitives = ['float', 'double']
- if sys.version_info[:2] > (2,2):
- pattern = "<type '%s'>"
- _bool_primitives = [ pattern % 'boolean' ]
- _int_primitives = [ pattern % p for p in _int_primitives ]
- _float_primitives = [ pattern % p for p in _float_primitives ]
- del pattern
+ pattern = "<type '%s'>"
+ _bool_primitives = [pattern % 'boolean']
+ _int_primitives = [pattern % p for p in _int_primitives]
+ _float_primitives = [pattern % p for p in _float_primitives]
+ del pattern
def __init__(self, arg_types, position):
self._position = position
@@ -90,15 +84,14 @@
return False
def _to_bool(self, arg):
- if arg.lower() == 'false':
- return False
- if arg.lower() == 'true':
- return True
- self._coercion_failed('boolean')
+ try:
+ return {'false': False, 'true': True}[arg.lower()]
+ except KeyError:
+ self._coercion_failed('boolean')
def _to_int(self, arg):
try:
- return long(arg)
+ return int(arg)
except ValueError:
self._coercion_failed('integer')
@@ -114,4 +107,3 @@
def _coercion_failed(self, arg_type):
raise DataError('Argument at position %d cannot be coerced to %s'
% (self._position, arg_type))
-