[pypy-svn] r9220 - in pypy/dist/pypy/module: . test

ac at codespeak.net ac at codespeak.net
Mon Feb 14 21:40:11 CET 2005


Author: ac
Date: Mon Feb 14 21:40:11 2005
New Revision: 9220

Modified:
   pypy/dist/pypy/module/__builtin__interp.py
   pypy/dist/pypy/module/test/test_builtin.py
Log:
Have getattr() accept unicode argument.

Modified: pypy/dist/pypy/module/__builtin__interp.py
==============================================================================
--- pypy/dist/pypy/module/__builtin__interp.py	(original)
+++ pypy/dist/pypy/module/__builtin__interp.py	Mon Feb 14 21:40:11 2005
@@ -261,6 +261,8 @@
     return space.w_None
 
 def getattr(w_object, w_name, w_defvalue=NoneNotWrapped):
+    if space.is_true(space.isinstance(w_name, space.w_unicode)):
+        w_name = space.call_method(w_name, 'encode')
     try:
         return space.getattr(w_object, w_name)
     except OperationError, e:

Modified: pypy/dist/pypy/module/test/test_builtin.py
==============================================================================
--- pypy/dist/pypy/module/test/test_builtin.py	(original)
+++ pypy/dist/pypy/module/test/test_builtin.py	Mon Feb 14 21:40:11 2005
@@ -69,6 +69,9 @@
         assert getattr(a, 'i') == 5
         raises(AttributeError, getattr, a, 'k')
         assert getattr(a, 'k', 42) == 42
+        assert getattr(a, u'i') == 5
+        raises(AttributeError, getattr, a, u'k')
+        assert getattr(a, u'k', 42) == 42
 
     def test_sum(self):
         assert sum([]) ==0



More information about the Pypy-commit mailing list