Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 3d79dd9

Browse files
author
Thomas Heller
committed
c_char_p.from_param accepts bytes. Fix test_parameters.
1 parent 7a76e8f commit 3d79dd9

2 files changed

Lines changed: 4 additions & 4 deletions

File tree

Lib/ctypes/test/test_parameters.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,11 @@ def test_cstrings(self):
5454

5555
# c_char_p.from_param on a Python String packs the string
5656
# into a cparam object
57-
s = "123"
57+
s = b"123"
5858
self.failUnless(c_char_p.from_param(s)._obj is s)
5959

6060
# new in 0.9.1: convert (encode) unicode to ascii
61-
self.failUnlessEqual(c_char_p.from_param("123")._obj, "123")
61+
self.failUnlessEqual(c_char_p.from_param("123")._obj, b"123")
6262
self.assertRaises(UnicodeEncodeError, c_char_p.from_param, "123\377")
6363

6464
self.assertRaises(TypeError, c_char_p.from_param, 42)
@@ -82,7 +82,7 @@ def test_cw_strings(self):
8282

8383
# new in 0.9.1: convert (decode) ascii to unicode
8484
self.failUnlessEqual(c_wchar_p.from_param("123")._obj, "123")
85-
self.assertRaises(UnicodeDecodeError, c_wchar_p.from_param, "123\377")
85+
self.assertRaises(UnicodeDecodeError, c_wchar_p.from_param, b"123\377")
8686

8787
pa = c_wchar_p.from_param(c_wchar_p("123"))
8888
self.failUnlessEqual(type(pa), c_wchar_p)

Modules/_ctypes/_ctypes.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1183,7 +1183,7 @@ c_char_p_from_param(PyObject *type, PyObject *value)
11831183
Py_INCREF(Py_None);
11841184
return Py_None;
11851185
}
1186-
if (PyString_Check(value) || PyUnicode_Check(value)) {
1186+
if (PyBytes_Check(value) || PyUnicode_Check(value)) {
11871187
PyCArgObject *parg;
11881188
struct fielddesc *fd = getentry("z");
11891189

0 commit comments

Comments
 (0)