Revision: 475daf6fd590
Branch:   default
Author:   Pekka Klärck
Date:     Wed Sep 12 04:16:19 2012
Log: utils.safe_repr: add u prefix also to list, tuple, and dict items with IPY
http://code.google.com/p/robotframework/source/detail?r=475daf6fd590

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

=======================================
--- /src/robot/utils/unic.py    Wed Sep 12 03:58:41 2012
+++ /src/robot/utils/unic.py    Wed Sep 12 04:16:19 2012
@@ -67,10 +67,14 @@
         return _unrepresentable_object(item)

 if sys.platform == 'cli':
+ # IronPython omits u prefix from repr(u'foo') but we want to be consistent.
     _safe_repr = safe_repr
     def safe_repr(item):
+        if isinstance(item, (tuple, list)):
+            return type(item)(safe_repr(i) for i in item)
+        if isinstance(item, dict):
+ return dict((safe_repr(k), safe_repr(v)) for k, v in item.items())
         ret = _safe_repr(item)
-        # IronPython omits u prefix but we want to be consistent.
         if isinstance(item, unicode) and not ret.startswith('u'):
             ret = 'u' + ret
         return ret
=======================================
--- /utest/utils/test_unic.py   Wed Sep 12 03:58:41 2012
+++ /utest/utils/test_unic.py   Wed Sep 12 04:16:19 2012
@@ -84,6 +84,11 @@
         assert_equals(safe_repr(u'foo'), "u'foo'")
         assert_equals(safe_repr(u"f'o'o"), "u\"f'o'o\"")

+    def test_unicode_items_in_lists_tuples_and_dicts_have_u_prefix(self):
+        assert_equals(safe_repr([u'x', u'y']), "[u'x', u'y']")
+        assert_equals(safe_repr((u'x', u'y')), "(u'x', u'y')")
+        assert_equals(safe_repr({u'x': u'y'}), "{u'x': u'y'}")
+

 class UnicodeRepr:

Reply via email to