]> granicus.if.org Git - python/commitdiff
test_bytes: test PyBytes_FromFormat() using ctypes
authorVictor Stinner <victor.stinner@haypocalc.com>
Wed, 5 Jan 2011 03:33:28 +0000 (03:33 +0000)
committerVictor Stinner <victor.stinner@haypocalc.com>
Wed, 5 Jan 2011 03:33:28 +0000 (03:33 +0000)
Lib/test/test_bytes.py

index 24ee487019c33e054c397d0d150f44c57e8972d7..e5c7ccd4ff0aca18418639bd356da4672f88daa7 100644 (file)
@@ -497,6 +497,27 @@ class BytesTest(BaseBytesTest):
                 return None
         self.assertRaises(TypeError, bytes, A())
 
+    # Test PyBytes_FromFormat()
+    def test_from_format(self):
+        test.support.import_module('ctypes')
+        from ctypes import pythonapi, py_object, c_int, c_char_p
+        PyBytes_FromFormat = pythonapi.PyBytes_FromFormat
+        PyBytes_FromFormat.restype = py_object
+
+        self.assertEqual(PyBytes_FromFormat(b'format'),
+                         b'format')
+
+        self.assertEqual(PyBytes_FromFormat(b'%'), b'%')
+        self.assertEqual(PyBytes_FromFormat(b'%%'), b'%')
+        self.assertEqual(PyBytes_FromFormat(b'%%s'), b'%s')
+        self.assertEqual(PyBytes_FromFormat(b'[%%]'), b'[%]')
+        self.assertEqual(PyBytes_FromFormat(b'%%%c', c_int(ord('_'))), b'%_')
+
+        self.assertEqual(PyBytes_FromFormat(b'c:%c', c_int(255)),
+                         b'c:\xff')
+        self.assertEqual(PyBytes_FromFormat(b's:%s', c_char_p(b'cstr')),
+                         b's:cstr')
+
 
 class ByteArrayTest(BaseBytesTest):
     type2test = bytearray