summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_print.py
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2012-01-13 18:41:25 (GMT)
committerGeorg Brandl <georg@python.org>2012-01-13 18:41:25 (GMT)
commitbc3b682923a22b89b0f5462ee2e807a4cc4ea81d (patch)
treed9842f6dfe5185783fe797d62c2e8e43efdff593 /Lib/test/test_print.py
parent5136ac0ca21a05691978df8d0650f902c8ca3463 (diff)
downloadcpython-bc3b682923a22b89b0f5462ee2e807a4cc4ea81d.zip
cpython-bc3b682923a22b89b0f5462ee2e807a4cc4ea81d.tar.gz
cpython-bc3b682923a22b89b0f5462ee2e807a4cc4ea81d.tar.bz2
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 8d37bbc..9d6dbea 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)