Mercurial > cpython-lru_cache-weakref
changeset 79770:2efcaec45697 3.3
Merge for issue #15744: add tests for the writelines() method of file objects.
| author | Antoine Pitrou <solipsis@pitrou.net> |
|---|---|
| date | Tue, 16 Oct 2012 23:05:01 +0200 |
| parents | 021048641f39 (current diff) 4c204a61bd79 (diff) |
| children | e526d67016f0 2621830cb241 |
| files | Lib/test/test_fileio.py Lib/test/test_io.py |
| diffstat | 2 files changed, 68 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/Lib/test/test_fileio.py Tue Oct 16 21:50:33 2012 +0300 +++ b/Lib/test/test_fileio.py Tue Oct 16 23:05:01 2012 +0200 @@ -10,6 +10,7 @@ from functools import wraps from test.support import TESTFN, check_warnings, run_unittest, make_bad_fd +from collections import UserList from _io import FileIO as _FileIO @@ -68,6 +69,27 @@ n = self.f.readinto(a) self.assertEqual(array('b', [1, 2]), a[:n]) + def testWritelinesList(self): + l = [b'123', b'456'] + self.f.writelines(l) + self.f.close() + self.f = _FileIO(TESTFN, 'rb') + buf = self.f.read() + self.assertEqual(buf, b'123456') + + def testWritelinesUserList(self): + l = UserList([b'123', b'456']) + self.f.writelines(l) + self.f.close() + self.f = _FileIO(TESTFN, 'rb') + buf = self.f.read() + self.assertEqual(buf, b'123456') + + def testWritelinesError(self): + self.assertRaises(TypeError, self.f.writelines, [1, 2, 3]) + self.assertRaises(TypeError, self.f.writelines, None) + self.assertRaises(TypeError, self.f.writelines, "abc") + def test_none_args(self): self.f.write(b"hi\nbye\nabc") self.f.close()
--- a/Lib/test/test_io.py Tue Oct 16 21:50:33 2012 +0300 +++ b/Lib/test/test_io.py Tue Oct 16 23:05:01 2012 +0200 @@ -32,7 +32,7 @@ import unittest import warnings import weakref -from collections import deque +from collections import deque, UserList from itertools import cycle, count from test import support @@ -1193,6 +1193,29 @@ bufio.flush() self.assertEqual(b"abc", writer._write_stack[0]) + def test_writelines(self): + l = [b'ab', b'cd', b'ef'] + writer = self.MockRawIO() + bufio = self.tp(writer, 8) + bufio.writelines(l) + bufio.flush() + self.assertEqual(b''.join(writer._write_stack), b'abcdef') + + def test_writelines_userlist(self): + l = UserList([b'ab', b'cd', b'ef']) + writer = self.MockRawIO() + bufio = self.tp(writer, 8) + bufio.writelines(l) + bufio.flush() + self.assertEqual(b''.join(writer._write_stack), b'abcdef') + + def test_writelines_error(self): + writer = self.MockRawIO() + bufio = self.tp(writer, 8) + self.assertRaises(TypeError, bufio.writelines, [1, 2, 3]) + self.assertRaises(TypeError, bufio.writelines, None) + self.assertRaises(TypeError, bufio.writelines, 'abc') + def test_destructor(self): writer = self.MockRawIO() bufio = self.tp(writer, 8) @@ -2296,6 +2319,28 @@ reads += c self.assertEqual(reads, "A"*127+"\nB") + def test_writelines(self): + l = ['ab', 'cd', 'ef'] + buf = self.BytesIO() + txt = self.TextIOWrapper(buf) + txt.writelines(l) + txt.flush() + self.assertEqual(buf.getvalue(), b'abcdef') + + def test_writelines_userlist(self): + l = UserList(['ab', 'cd', 'ef']) + buf = self.BytesIO() + txt = self.TextIOWrapper(buf) + txt.writelines(l) + txt.flush() + self.assertEqual(buf.getvalue(), b'abcdef') + + def test_writelines_error(self): + txt = self.TextIOWrapper(self.BytesIO()) + self.assertRaises(TypeError, txt.writelines, [1, 2, 3]) + self.assertRaises(TypeError, txt.writelines, None) + self.assertRaises(TypeError, txt.writelines, b'abc') + def test_issue1395_1(self): txt = self.TextIOWrapper(self.BytesIO(self.testdata), encoding="ascii")
