Author: Richard Plangger <[email protected]>
Branch: strbuf-as-buffer
Changeset: r88983:a3362d15b0e7
Date: 2016-12-09 13:21 +0100
http://bitbucket.org/pypy/pypy/changeset/a3362d15b0e7/

Log:    update test, from_buffer(memoryview) is now allowed!

diff --git a/pypy/module/_cffi_backend/test/_backend_test_c.py 
b/pypy/module/_cffi_backend/test/_backend_test_c.py
--- a/pypy/module/_cffi_backend/test/_backend_test_c.py
+++ b/pypy/module/_cffi_backend/test/_backend_test_c.py
@@ -3417,22 +3417,27 @@
     assert p1 == from_buffer(BCharA, b"foo")
     import gc; gc.collect()
     assert p1 == from_buffer(BCharA, b"foo")
-    py.test.raises(TypeError, from_buffer, BCharA, u+"foo")
     try:
         from __builtin__ import buffer
     except ImportError:
-        pass
+        # python3 does not allow from to get buffer from unicode!
+        raises(TypeError, from_buffer, BCharA, u+"foo")
     else:
-        # from_buffer(buffer(b"foo")) does not work, because it's not
-        # implemented on pypy; only from_buffer(b"foo") works.
-        py.test.raises(TypeError, from_buffer, BCharA, buffer(b"foo"))
-        py.test.raises(TypeError, from_buffer, BCharA, buffer(u+"foo"))
+        p4 = from_buffer(BCharA, u+"foo")
+        contents = from_buffer(BCharA, buffer(b"foo"))
+        for i in range(len(contents)):
+            assert contents[i] == p1[i]
+        contents = from_buffer(BCharA, buffer(u+"foo"))
+        for i in range(len(contents)):
+            assert contents[i] == p4[i]
     try:
         from __builtin__ import memoryview
     except ImportError:
         pass
     else:
-        py.test.raises(TypeError, from_buffer, BCharA, memoryview(b"foo"))
+        contents = from_buffer(BCharA, memoryview(b"foo"))
+        for i in range(len(contents)):
+            assert contents[i] == p1[i]
 
 def test_from_buffer_bytearray():
     a = bytearray(b"xyz")
diff --git a/rpython/rtyper/lltypesystem/rffi.py 
b/rpython/rtyper/lltypesystem/rffi.py
--- a/rpython/rtyper/lltypesystem/rffi.py
+++ b/rpython/rtyper/lltypesystem/rffi.py
@@ -795,12 +795,9 @@
             return data_start
         rawbytes = RawBytes(string)
         _STR_WDICT.set(key, rawbytes)
+
     return rawbytes.ptr
 
-
-
-
-
 # various type mapping
 
 # conversions between str and char*
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to