Kaydet (Commit) 62f5a9d6 authored tarafından Neal Norwitz's avatar Neal Norwitz

Convert file.readinto() to stop using METH_OLDARGS & PyArg_Parse.

Add test for file.readinto().
üst b955d6c4
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},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment