Revision: 2548
Author: janne.t.harkonen
Date: Thu Feb 25 06:05:54 2010
Log: Added test for array of unicode objects
http://code.google.com/p/robotframework/source/detail?r=2548

Modified:
 /trunk/src/robot/utils/unic.py
 /trunk/utest/utils/test_unic.py

=======================================
--- /trunk/src/robot/utils/unic.py      Thu Feb 25 01:21:01 2010
+++ /trunk/src/robot/utils/unic.py      Thu Feb 25 06:05:54 2010
@@ -24,11 +24,16 @@
     def unic(item):
         if isinstance(item, basestring):
             return item
-        if sys.version_info[:2] > (2,2) and isinstance(item, Object):
- if not isinstance(item, Class): #http://bugs.jython.org/issue1564
-                item = item.toString()  # http://bugs.jython.org/issue1563
+        if sys.version_info[:2] > (2,2):
+            if hasattr(item, '__iter__'):
+                item = [ _to_string(i) for i in item ]
+ elif not isinstance(item, Class): #http://bugs.jython.org/issue1564
+                item = _to_string(item)  # http://bugs.jython.org/issue1563
         return unicode(item)

+    def _to_string(item):
+        return isinstance(item, Object) and item.toString() or item
+
 else:

     def unic(item):
=======================================
--- /trunk/utest/utils/test_unic.py     Thu Feb 25 01:22:12 2010
+++ /trunk/utest/utils/test_unic.py     Thu Feb 25 06:05:54 2010
@@ -1,21 +1,26 @@
 import unittest
 from robot.utils import unic, is_jython
-from robot.utils.asserts import assert_equals
+from robot.utils.asserts import assert_equals, assert_true
 if is_jython:
     from java.lang import String
     import JavaObject
+    import UnicodeJavaLibrary


 class TestUnic(unittest.TestCase):

     if is_jython:
-        def test_unic_with_java_object(self):
+        def test_with_java_object(self):
             data = u'This is unicode \xe4\xf6'
             assert_equals(unic(JavaObject(data)), data)

-        def test_unic_with_class_type(self):
+        def test_with_class_type(self):
assert_equals(unic(String('').getClass()), "<type 'java.lang.String'>")

+        def test_with_array_containing_unicode_objects(self):
+            assert_true('Circle is 360' in
+                        unic(UnicodeJavaLibrary().javaObjectArray()))
+

 if __name__ == '__main__':
     unittest.main()

Reply via email to