From 3d79dd9edf3cfdffd1dc7d4e45b77da2478e1111 Mon Sep 17 00:00:00 2001 From: Thomas Heller Date: Thu, 12 Jul 2007 19:33:24 +0000 Subject: c_char_p.from_param accepts bytes. Fix test_parameters. --- Lib/ctypes/test/test_parameters.py | 6 +++--- Modules/_ctypes/_ctypes.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Lib/ctypes/test/test_parameters.py b/Lib/ctypes/test/test_parameters.py index 84d8eaf..4c80bdf 100644 --- a/Lib/ctypes/test/test_parameters.py +++ b/Lib/ctypes/test/test_parameters.py @@ -54,11 +54,11 @@ class SimpleTypesTestCase(unittest.TestCase): # c_char_p.from_param on a Python String packs the string # into a cparam object - s = "123" + s = b"123" self.failUnless(c_char_p.from_param(s)._obj is s) # new in 0.9.1: convert (encode) unicode to ascii - self.failUnlessEqual(c_char_p.from_param("123")._obj, "123") + self.failUnlessEqual(c_char_p.from_param("123")._obj, b"123") self.assertRaises(UnicodeEncodeError, c_char_p.from_param, "123\377") self.assertRaises(TypeError, c_char_p.from_param, 42) @@ -82,7 +82,7 @@ class SimpleTypesTestCase(unittest.TestCase): # new in 0.9.1: convert (decode) ascii to unicode self.failUnlessEqual(c_wchar_p.from_param("123")._obj, "123") - self.assertRaises(UnicodeDecodeError, c_wchar_p.from_param, "123\377") + self.assertRaises(UnicodeDecodeError, c_wchar_p.from_param, b"123\377") pa = c_wchar_p.from_param(c_wchar_p("123")) self.failUnlessEqual(type(pa), c_wchar_p) diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c index bab1e35..d6a435d 100644 --- a/Modules/_ctypes/_ctypes.c +++ b/Modules/_ctypes/_ctypes.c @@ -1183,7 +1183,7 @@ c_char_p_from_param(PyObject *type, PyObject *value) Py_INCREF(Py_None); return Py_None; } - if (PyString_Check(value) || PyUnicode_Check(value)) { + if (PyBytes_Check(value) || PyUnicode_Check(value)) { PyCArgObject *parg; struct fielddesc *fd = getentry("z"); -- cgit v0.12