summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAntoine Pitrou <solipsis@pitrou.net>2012-10-16 20:57:11 (GMT)
committerAntoine Pitrou <solipsis@pitrou.net>2012-10-16 20:57:11 (GMT)
commit78e761eafe670ce06aca7723f239e9e52d30296f (patch)
tree4abe937cbf393a665fef5669c8501011623c53f0
parentce5a56e9851a65a94b24b27ec6e55d4c47d7e46c (diff)
downloadcpython-78e761eafe670ce06aca7723f239e9e52d30296f.zip
cpython-78e761eafe670ce06aca7723f239e9e52d30296f.tar.gz
cpython-78e761eafe670ce06aca7723f239e9e52d30296f.tar.bz2
Add tests for the writelines() method of file objects.
Original patch by Felipe Cruz.
-rw-r--r--Lib/test/test_fileio.py21
-rw-r--r--Lib/test/test_io.py23
2 files changed, 44 insertions, 0 deletions
diff --git a/Lib/test/test_fileio.py b/Lib/test/test_fileio.py
index c6863d6..71ec44c 100644
--- a/Lib/test/test_fileio.py
+++ b/Lib/test/test_fileio.py
@@ -9,6 +9,7 @@ import unittest
from array import array
from weakref import proxy
from functools import wraps
+from UserList import UserList
from test.test_support import TESTFN, check_warnings, run_unittest, make_bad_fd
from test.test_support import py3k_bytes as bytes
@@ -71,6 +72,26 @@ class AutoFileTests(unittest.TestCase):
n = self.f.readinto(a)
self.assertEqual(array(b'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)
+
def test_none_args(self):
self.f.write(b"hi\nbye\nabc")
self.f.close()
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 signal
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 @@ class BufferedWriterTest(unittest.TestCase, CommonBufferedTests):
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)