[pypy-svn] r40234 - in pypy/dist/pypy/objspace/std: . test

arigo at codespeak.net arigo at codespeak.net
Sun Mar 11 17:27:11 CET 2007


Author: arigo
Date: Sun Mar 11 17:27:09 2007
New Revision: 40234

Modified:
   pypy/dist/pypy/objspace/std/test/test_unicodeobject.py
   pypy/dist/pypy/objspace/std/unicodetype.py
Log:
Fix for unicode(None) incorrectly returning u''.


Modified: pypy/dist/pypy/objspace/std/test/test_unicodeobject.py
==============================================================================
--- pypy/dist/pypy/objspace/std/test/test_unicodeobject.py	(original)
+++ pypy/dist/pypy/objspace/std/test/test_unicodeobject.py	Sun Mar 11 17:27:09 2007
@@ -258,3 +258,9 @@
         a = x.__getnewargs__()
         assert a == (u"foo\u1234",)
         assert type(a[0]) is unicode
+
+    def test_call_unicode(self):
+        assert unicode() == u''
+        assert unicode(None) == u'None'
+        assert unicode(123) == u'123'
+        assert unicode([2, 3]) == u'[2, 3]'

Modified: pypy/dist/pypy/objspace/std/unicodetype.py
==============================================================================
--- pypy/dist/pypy/objspace/std/unicodetype.py	(original)
+++ pypy/dist/pypy/objspace/std/unicodetype.py	Sun Mar 11 17:27:09 2007
@@ -273,7 +273,7 @@
     return W_UnicodeObject(codelist)
 
 
-def descr__new__(space, w_unicodetype, w_string=None, w_encoding=None, w_errors=None):
+def descr__new__(space, w_unicodetype, w_string='', w_encoding=None, w_errors=None):
     from pypy.objspace.std.unicodeobject import W_UnicodeObject
     w_obj = w_string
     w_obj_type = space.type(w_obj)
@@ -286,8 +286,6 @@
         if space.is_w(w_unicodetype, space.w_unicode):
             return w_obj
         w_value = w_obj
-    elif space.is_w(w_obj, space.w_None):
-        w_value = W_UnicodeObject([])
     elif (space.is_w(w_encoding, space.w_None) and
           space.is_w(w_errors, space.w_None)):
         if space.is_true(space.isinstance(w_obj, space.w_str)):



More information about the Pypy-commit mailing list