mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
Merge for issue #15744: add tests for the writelines() method of file objects.
This commit is contained in:
commit
8261f838ff
2 changed files with 68 additions and 1 deletions
|
@ -32,7 +32,7 @@ import time
|
|||
import unittest
|
||||
import warnings
|
||||
import weakref
|
||||
from collections import deque
|
||||
from collections import deque, UserList
|
||||
from itertools import cycle, count
|
||||
from test import support
|
||||
|
||||
|
@ -1201,6 +1201,29 @@ 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)
|
||||
self.assertRaises(TypeError, bufio.writelines, 'abc')
|
||||
|
||||
def test_destructor(self):
|
||||
writer = self.MockRawIO()
|
||||
bufio = self.tp(writer, 8)
|
||||
|
@ -2304,6 +2327,28 @@ class TextIOWrapperTest(unittest.TestCase):
|
|||
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")
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue