Author: Antonio Cuni <[email protected]>
Branch: 
Changeset: r54455:cf29881e5624
Date: 2012-04-17 11:24 +0200
http://bitbucket.org/pypy/pypy/changeset/cf29881e5624/

Log:    (antocuni, amaury and arigato around): bah, space.bool_w does not
        work generally. Use space.nonzero instead

diff --git a/pypy/objspace/descroperation.py b/pypy/objspace/descroperation.py
--- a/pypy/objspace/descroperation.py
+++ b/pypy/objspace/descroperation.py
@@ -415,7 +415,7 @@
         w_descr = space.lookup(w_container, '__contains__')
         if w_descr is not None:
             w_result = space.get_and_call_function(w_descr, w_container, 
w_item)
-            return space.wrap(space.bool_w(w_result))
+            return space.nonzero(w_result)
         return space._contains(w_container, w_item)
 
     def _contains(space, w_container, w_item):
diff --git a/pypy/objspace/test/test_descroperation.py 
b/pypy/objspace/test/test_descroperation.py
--- a/pypy/objspace/test/test_descroperation.py
+++ b/pypy/objspace/test/test_descroperation.py
@@ -697,10 +697,15 @@
     def test_bool___contains__(self):
         class X(object):
             def __contains__(self, item):
-                return 42
+                if item == 'foo':
+                    return 42
+                else:
+                    return 'hello world'
         x = X()
         res = 'foo' in x
         assert res is True
+        res = 'bar' in x
+        assert res is True
         #
         class CannotConvertToBool(object):
             def __nonzero__(self):
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to