From 29e762c94172a4e0b2855f188399f8f05487920e Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Wed, 5 Jan 2011 03:33:28 +0000 Subject: test_bytes: test PyBytes_FromFormat() using ctypes --- Lib/test/test_bytes.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Lib/test/test_bytes.py b/Lib/test/test_bytes.py index 24ee487..e5c7ccd 100644 --- a/Lib/test/test_bytes.py +++ b/Lib/test/test_bytes.py @@ -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 -- cgit v0.12