mirror of
https://github.com/python/cpython.git
synced 2024-11-23 18:04:37 +08:00
Convert file.readinto() to stop using METH_OLDARGS & PyArg_Parse.
Add test for file.readinto().
This commit is contained in:
parent
b955d6c41e
commit
62f5a9d6c2
@ -1,4 +1,5 @@
|
||||
import os
|
||||
from array import array
|
||||
|
||||
from test_support import verify, TESTFN
|
||||
from UserList import UserList
|
||||
@ -13,6 +14,13 @@ buf = f.read()
|
||||
f.close()
|
||||
verify(buf == '12')
|
||||
|
||||
# verify readinto
|
||||
a = array('c', 'x'*10)
|
||||
f = open(TESTFN, 'rb')
|
||||
n = f.readinto(a)
|
||||
f.close()
|
||||
verify(buf == a.tostring()[:n])
|
||||
|
||||
# verify writelines with integers
|
||||
f = open(TESTFN, 'wb')
|
||||
try:
|
||||
@ -69,6 +77,13 @@ if f.isatty():
|
||||
if f.closed:
|
||||
raise TestError, 'file.closed should be false'
|
||||
|
||||
try:
|
||||
f.readinto("")
|
||||
except TypeError:
|
||||
pass
|
||||
else:
|
||||
raise TestError, 'file.readinto("") should raise a TypeError'
|
||||
|
||||
f.close()
|
||||
if not f.closed:
|
||||
raise TestError, 'file.closed should be true'
|
||||
|
@ -686,7 +686,7 @@ file_readinto(PyFileObject *f, PyObject *args)
|
||||
|
||||
if (f->f_fp == NULL)
|
||||
return err_closed();
|
||||
if (!PyArg_Parse(args, "w#", &ptr, &ntodo))
|
||||
if (!PyArg_ParseTuple(args, "w#", &ptr, &ntodo))
|
||||
return NULL;
|
||||
ndone = 0;
|
||||
while (ntodo > 0) {
|
||||
@ -1462,7 +1462,7 @@ static PyMethodDef file_methods[] = {
|
||||
{"truncate", (PyCFunction)file_truncate, METH_VARARGS, truncate_doc},
|
||||
#endif
|
||||
{"tell", (PyCFunction)file_tell, METH_NOARGS, tell_doc},
|
||||
{"readinto", (PyCFunction)file_readinto, METH_OLDARGS, readinto_doc},
|
||||
{"readinto", (PyCFunction)file_readinto, METH_VARARGS, readinto_doc},
|
||||
{"readlines", (PyCFunction)file_readlines, METH_VARARGS, readlines_doc},
|
||||
{"xreadlines", (PyCFunction)file_xreadlines, METH_NOARGS, xreadlines_doc},
|
||||
{"writelines", (PyCFunction)file_writelines, METH_O, writelines_doc},
|
||||
|
Loading…
Reference in New Issue
Block a user