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: