Add tests for the writelines() method of file objects.
Original patch by Felipe Cruz.
diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py
index e4507e4..a5d87b9 100644
--- a/Lib/test/test_io.py
+++ b/Lib/test/test_io.py
@@ -34,6 +34,7 @@
import errno
from itertools import cycle, count
from collections import deque
+from UserList import UserList
from test import test_support as support
import codecs
@@ -1126,6 +1127,28 @@
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)
+
def test_destructor(self):
writer = self.MockRawIO()
bufio = self.tp(writer, 8)