Implement the changes proposed in patch #413333. unicode(obj) now
works just like str(obj) in that it tries __str__/tp_str on the object
in case it finds that the object is not a string or buffer.
diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py
index d57328d..d508bef 100644
--- a/Lib/test/test_unicode.py
+++ b/Lib/test/test_unicode.py
@@ -429,6 +429,7 @@
verify(unicode('hello','utf8') == u'hello')
verify(unicode('hello','latin-1') == u'hello')
+# Compatibility to str():
class String:
x = ''
def __str__(self):
@@ -444,6 +445,10 @@
verify(unicode(o) == u'abc')
verify(str(o) == 'abc')
+for obj in (123, 123.45, 123L):
+ verify(unicode(obj) == unicode(str(obj)))
+
+# Error handling
try:
u'Andr\202 x'.encode('ascii')
u'Andr\202 x'.encode('ascii','strict')