diff --git a/Lib/test/test_file2k.py b/Lib/test/test_file2k.py --- a/Lib/test/test_file2k.py +++ b/Lib/test/test_file2k.py @@ -89,6 +89,13 @@ self.assertRaises(TypeError, self.f.writelines, [NonString(), NonString()]) + def testWritelinesBuffer(self): + self.f.writelines([array('c', 'abc')]) + self.f.close() + self.f = open(TESTFN, 'rb') + buf = self.f.read() + self.assertEqual(buf, 'abc') + def testRepr(self): # verify repr works self.assertTrue(repr(self.f).startswith("f_binary && - PyObject_AsReadBuffer(v, - (const void**)&buffer, - &len)) || - PyObject_AsCharBuffer(v, - &buffer, - &len))) { + int res; + if (f->f_binary) { + res = PyObject_AsReadBuffer(v, (const void**)&buffer, &len); + } else { + res = PyObject_AsCharBuffer(v, &buffer, &len); + } + if (res) { PyErr_SetString(PyExc_TypeError, "writelines() argument must be a sequence of strings"); goto error;