Commit 0d6d9495 authored by Antoine Pitrou's avatar Antoine Pitrou

Add tests for the writelines() method of file objects.

Original patch by Felipe Cruz.
parent 2efb4901
...@@ -9,6 +9,7 @@ import unittest ...@@ -9,6 +9,7 @@ import unittest
from array import array from array import array
from weakref import proxy from weakref import proxy
from functools import wraps 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 TESTFN, check_warnings, run_unittest, make_bad_fd
from test.test_support import py3k_bytes as bytes from test.test_support import py3k_bytes as bytes
...@@ -71,6 +72,26 @@ class AutoFileTests(unittest.TestCase): ...@@ -71,6 +72,26 @@ class AutoFileTests(unittest.TestCase):
n = self.f.readinto(a) n = self.f.readinto(a)
self.assertEqual(array(b'b', [1, 2]), a[:n]) 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): def test_none_args(self):
self.f.write(b"hi\nbye\nabc") self.f.write(b"hi\nbye\nabc")
self.f.close() self.f.close()
......
...@@ -34,6 +34,7 @@ import signal ...@@ -34,6 +34,7 @@ import signal
import errno import errno
from itertools import cycle, count from itertools import cycle, count
from collections import deque from collections import deque
from UserList import UserList
from test import test_support as support from test import test_support as support
import codecs import codecs
...@@ -1126,6 +1127,28 @@ class BufferedWriterTest(unittest.TestCase, CommonBufferedTests): ...@@ -1126,6 +1127,28 @@ class BufferedWriterTest(unittest.TestCase, CommonBufferedTests):
bufio.flush() bufio.flush()
self.assertEqual(b"abc", writer._write_stack[0]) 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): def test_destructor(self):
writer = self.MockRawIO() writer = self.MockRawIO()
bufio = self.tp(writer, 8) bufio = self.tp(writer, 8)
......
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