summaryrefslogtreecommitdiff
path: root/Lib/test/test_print.py
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2012-01-13 19:41:25 +0100
committerGeorg Brandl <georg@python.org>2012-01-13 19:41:25 +0100
commita22a60af5d3f1d04ae5aa3a96e6b94ca94777405 (patch)
treee9d2ec632e1aa54f15b49121f82e88f4d22a99d3 /Lib/test/test_print.py
parent1434e995657f5525a55584535d023dbe0ce2af24 (diff)
downloadcpython-a22a60af5d3f1d04ae5aa3a96e6b94ca94777405.tar.gz
Closes #13761: add a "flush" keyword argument to print().
Diffstat (limited to 'Lib/test/test_print.py')
-rw-r--r--Lib/test/test_print.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/Lib/test/test_print.py b/Lib/test/test_print.py
index 8d37bbc4d6..9d6dbea46b 100644
--- a/Lib/test/test_print.py
+++ b/Lib/test/test_print.py
@@ -111,6 +111,32 @@ class TestPrint(unittest.TestCase):
self.assertRaises(TypeError, print, '', end=3)
self.assertRaises(AttributeError, print, '', file='')
+ def test_print_flush(self):
+ # operation of the flush flag
+ class filelike():
+ def __init__(self):
+ self.written = ''
+ self.flushed = 0
+ def write(self, str):
+ self.written += str
+ def flush(self):
+ self.flushed += 1
+
+ f = filelike()
+ print(1, file=f, end='', flush=True)
+ print(2, file=f, end='', flush=True)
+ print(3, file=f, flush=False)
+ self.assertEqual(f.written, '123\n')
+ self.assertEqual(f.flushed, 2)
+
+ # ensure exceptions from flush are passed through
+ class noflush():
+ def write(self, str):
+ pass
+ def flush(self):
+ raise RuntimeError
+ self.assertRaises(RuntimeError, print, 1, file=noflush(), flush=True)
+
def test_main():
support.run_unittest(TestPrint)