[Python-checkins] r79288 - in python/trunk/Lib: ctypes/test/test_array_in_pointer.py ctypes/test/test_byteswap.py ctypes/test/test_pep3118.py ctypes/test/test_pickling.py ctypes/test/test_random_things.py ctypes/test/test_strings.py test/test_ctypes.py

florent.xicluna python-checkins at python.org
Mon Mar 22 16:02:47 CET 2010


Author: florent.xicluna
Date: Mon Mar 22 16:02:46 2010
New Revision: 79288

Log:
Get rid of buffer() in test_ctypes:  backport the 3.x tests.


Modified:
   python/trunk/Lib/ctypes/test/test_array_in_pointer.py
   python/trunk/Lib/ctypes/test/test_byteswap.py
   python/trunk/Lib/ctypes/test/test_pep3118.py
   python/trunk/Lib/ctypes/test/test_pickling.py
   python/trunk/Lib/ctypes/test/test_random_things.py
   python/trunk/Lib/ctypes/test/test_strings.py
   python/trunk/Lib/test/test_ctypes.py

Modified: python/trunk/Lib/ctypes/test/test_array_in_pointer.py
==============================================================================
--- python/trunk/Lib/ctypes/test/test_array_in_pointer.py	(original)
+++ python/trunk/Lib/ctypes/test/test_array_in_pointer.py	Mon Mar 22 16:02:46 2010
@@ -6,7 +6,7 @@
 def dump(obj):
     # helper function to dump memory contents in hex, with a hyphen
     # between the bytes.
-    h = hexlify(buffer(obj))
+    h = hexlify(memoryview(obj))
     return re.sub(r"(..)", r"\1-", h)[:-1]
 
 

Modified: python/trunk/Lib/ctypes/test/test_byteswap.py
==============================================================================
--- python/trunk/Lib/ctypes/test/test_byteswap.py	(original)
+++ python/trunk/Lib/ctypes/test/test_byteswap.py	Mon Mar 22 16:02:46 2010
@@ -4,7 +4,7 @@
 from ctypes import *
 
 def bin(s):
-    return hexlify(buffer(s)).upper()
+    return hexlify(memoryview(s)).upper()
 
 # Each *simple* type that supports different byte orders has an
 # __ctype_be__ attribute that specifies the same type in BIG ENDIAN

Modified: python/trunk/Lib/ctypes/test/test_pep3118.py
==============================================================================
--- python/trunk/Lib/ctypes/test/test_pep3118.py	(original)
+++ python/trunk/Lib/ctypes/test/test_pep3118.py	Mon Mar 22 16:02:46 2010
@@ -1,6 +1,6 @@
 import unittest
 from ctypes import *
-import re, struct, sys
+import re, sys
 
 if sys.byteorder == "little":
     THIS_ENDIAN = "<"
@@ -9,27 +9,6 @@
     THIS_ENDIAN = ">"
     OTHER_ENDIAN = "<"
 
-class memoryview(object):
-    # This class creates a memoryview - like object from data returned
-    # by the private _ctypes._buffer_info() function, just enough for
-    # these tests.
-    #
-    # It can be removed when the py3k memoryview object is backported.
-    def __init__(self, ob):
-        from _ctypes import _buffer_info
-        self.format, self.ndim, self.shape = _buffer_info(ob)
-        if self.shape == ():
-            self.shape = None
-            self.itemsize = sizeof(ob)
-        else:
-            size = sizeof(ob)
-            for dim in self.shape:
-                size //= dim
-            self.itemsize = size
-        self.strides = None
-        self.readonly = False
-        self.size = sizeof(ob)
-
 def normalize(format):
     # Remove current endian specifier and white space from a format
     # string
@@ -46,7 +25,10 @@
             v = memoryview(ob)
             try:
                 self.assertEqual(normalize(v.format), normalize(fmt))
-                self.assertEqual(v.size, sizeof(ob))
+                if shape is not None:
+                    self.assertEqual(len(v), shape[0])
+                else:
+                    self.assertEqual(len(v) * sizeof(itemtp), sizeof(ob))
                 self.assertEqual(v.itemsize, sizeof(itemtp))
                 self.assertEqual(v.shape, shape)
                 # ctypes object always have a non-strided memory block
@@ -58,7 +40,7 @@
                     n = 1
                     for dim in v.shape:
                         n = n * dim
-                    self.assertEqual(v.itemsize * n, v.size)
+                    self.assertEqual(n * v.itemsize, len(v.tobytes()))
             except:
                 # so that we can see the failing type
                 print(tp)
@@ -70,7 +52,10 @@
             v = memoryview(ob)
             try:
                 self.assertEqual(v.format, fmt)
-                self.assertEqual(v.size, sizeof(ob))
+                if shape is not None:
+                    self.assertEqual(len(v), shape[0])
+                else:
+                    self.assertEqual(len(v) * sizeof(itemtp), sizeof(ob))
                 self.assertEqual(v.itemsize, sizeof(itemtp))
                 self.assertEqual(v.shape, shape)
                 # ctypes object always have a non-strided memory block
@@ -82,7 +67,7 @@
                     n = 1
                     for dim in v.shape:
                         n = n * dim
-                    self.assertEqual(v.itemsize * n, v.size)
+                    self.assertEqual(n, len(v))
             except:
                 # so that we can see the failing type
                 print(tp)

Modified: python/trunk/Lib/ctypes/test/test_pickling.py
==============================================================================
--- python/trunk/Lib/ctypes/test/test_pickling.py	(original)
+++ python/trunk/Lib/ctypes/test/test_pickling.py	Mon Mar 22 16:02:46 2010
@@ -28,8 +28,8 @@
             ]:
             dst = self.loads(self.dumps(src))
             self.assertEqual(src.__dict__, dst.__dict__)
-            self.assertEqual(buffer(src)[:],
-                                 buffer(dst)[:])
+            self.assertEqual(memoryview(src).tobytes(),
+                                 memoryview(dst).tobytes())
 
     def test_struct(self):
         X.init_called = 0
@@ -46,8 +46,8 @@
         # ctypes instances are identical when the instance __dict__
         # and the memory buffer are identical
         self.assertEqual(y.__dict__, x.__dict__)
-        self.assertEqual(buffer(y)[:],
-                             buffer(x)[:])
+        self.assertEqual(memoryview(y).tobytes(),
+                             memoryview(x).tobytes())
 
     def test_unpickable(self):
         # ctypes objects that are pointers or contain pointers are

Modified: python/trunk/Lib/ctypes/test/test_random_things.py
==============================================================================
--- python/trunk/Lib/ctypes/test/test_random_things.py	(original)
+++ python/trunk/Lib/ctypes/test/test_random_things.py	Mon Mar 22 16:02:46 2010
@@ -2,7 +2,7 @@
 import unittest, sys
 
 def callback_func(arg):
-    42 / arg
+    42 // arg
     raise ValueError(arg)
 
 if sys.platform == "win32":
@@ -69,7 +69,7 @@
         out = self.capture_stderr(cb, "spam")
         self.assertEqual(out.splitlines()[-1],
                              "TypeError: "
-                             "unsupported operand type(s) for /: 'int' and 'str'")
+                             "unsupported operand type(s) for //: 'int' and 'str'")
 
 if __name__ == '__main__':
     unittest.main()

Modified: python/trunk/Lib/ctypes/test/test_strings.py
==============================================================================
--- python/trunk/Lib/ctypes/test/test_strings.py	(original)
+++ python/trunk/Lib/ctypes/test/test_strings.py	Mon Mar 22 16:02:46 2010
@@ -30,17 +30,17 @@
         buf.value = "Hello, World"
         self.assertEqual(buf.value, "Hello, World")
 
-        self.assertRaises(TypeError, setattr, buf, "value", buffer("Hello, World"))
-        self.assertRaises(TypeError, setattr, buf, "value", buffer("abc"))
-        self.assertRaises(ValueError, setattr, buf, "raw", buffer("x" * 100))
+        self.assertRaises(TypeError, setattr, buf, "value", memoryview("Hello, World"))
+        self.assertRaises(TypeError, setattr, buf, "value", memoryview("abc"))
+        self.assertRaises(ValueError, setattr, buf, "raw", memoryview("x" * 100))
 
     def test_c_buffer_raw(self):
         buf = c_buffer(32)
 
-        buf.raw = buffer("Hello, World")
+        buf.raw = memoryview("Hello, World")
         self.assertEqual(buf.value, "Hello, World")
-        self.assertRaises(TypeError, setattr, buf, "value", buffer("abc"))
-        self.assertRaises(ValueError, setattr, buf, "raw", buffer("x" * 100))
+        self.assertRaises(TypeError, setattr, buf, "value", memoryview("abc"))
+        self.assertRaises(ValueError, setattr, buf, "raw", memoryview("x" * 100))
 
     def test_param_1(self):
         BUF = c_char * 4

Modified: python/trunk/Lib/test/test_ctypes.py
==============================================================================
--- python/trunk/Lib/test/test_ctypes.py	(original)
+++ python/trunk/Lib/test/test_ctypes.py	Mon Mar 22 16:02:46 2010
@@ -1,17 +1,15 @@
 import unittest
 
-from test.test_support import run_unittest, import_module, check_py3k_warnings
+from test.test_support import run_unittest, import_module
 #Skip tests if _ctypes module does not exist
 import_module('_ctypes')
 
 
 def test_main():
-    with check_py3k_warnings(("buffer.. not supported", DeprecationWarning),
-                             ("classic (int|long) division", DeprecationWarning)):
-        import ctypes.test
-        skipped, testcases = ctypes.test.get_tests(ctypes.test, "test_*.py", verbosity=0)
-        suites = [unittest.makeSuite(t) for t in testcases]
-        run_unittest(unittest.TestSuite(suites))
+    import ctypes.test
+    skipped, testcases = ctypes.test.get_tests(ctypes.test, "test_*.py", verbosity=0)
+    suites = [unittest.makeSuite(t) for t in testcases]
+    run_unittest(unittest.TestSuite(suites))
 
 if __name__ == "__main__":
     test_main()


More information about the Python-checkins mailing list