Author: Manuel Jacob
Branch: refactor-str-types
Changeset: r65777:fcbbf370c6ac
Date: 2013-07-29 14:36 +0200
http://bitbucket.org/pypy/pypy/changeset/fcbbf370c6ac/

Log:    Add auto-convertion method descr_contains() in W_BytesObject.

diff --git a/pypy/objspace/std/bytesobject.py b/pypy/objspace/std/bytesobject.py
--- a/pypy/objspace/std/bytesobject.py
+++ b/pypy/objspace/std/bytesobject.py
@@ -204,6 +204,12 @@
             return self_as_unicode._endswith(space, self_as_unicode._value, 
w_suffix, start, end)
         return StringMethods._endswith(self, space, value, w_suffix, start, 
end)
 
+    def descr_contains(self, space, w_sub):
+        if space.isinstance_w(w_sub, space.w_unicode):
+            self_as_unicode = unicode_from_encoded_object(space, self, None, 
None)
+            return 
space.newbool(self_as_unicode._value.find(self._op_val(space, w_sub)) >= 0)
+        return StringMethods.descr_contains(self, space, w_sub)
+
     @unwrap_spec(count=int)
     def descr_replace(self, space, w_old, w_new, count=-1):
         old_is_unicode = space.isinstance_w(w_old, space.w_unicode)
diff --git a/pypy/objspace/std/test/test_unicodeobject.py 
b/pypy/objspace/std/test/test_unicodeobject.py
--- a/pypy/objspace/std/test/test_unicodeobject.py
+++ b/pypy/objspace/std/test/test_unicodeobject.py
@@ -86,6 +86,7 @@
     def test_contains(self):
         assert u'a' in 'abc'
         assert 'a' in u'abc'
+        raises(UnicodeDecodeError, "u'\xe2' in 'g\xe2teau'")
 
     def test_splitlines(self):
         assert u''.splitlines() == []
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to