diff Lib/test/test_code_module.py @ 86331:2933598a7802

Closes #17730: in code.interact(), when banner="", do not print anything. Also adds tests for banner printing.
author Georg Brandl <georg@python.org>
date Sun, 13 Oct 2013 21:49:06 +0200
parents a812de69b493
children
line wrap: on
line diff
--- a/Lib/test/test_code_module.py	Sun Oct 13 20:56:25 2013 +0200
+++ b/Lib/test/test_code_module.py	Sun Oct 13 21:49:06 2013 +0200
@@ -64,6 +64,20 @@
         self.console.interact()
         self.assertTrue(hook.called)
 
+    def test_banner(self):
+        # with banner
+        self.infunc.side_effect = EOFError('Finished')
+        self.console.interact(banner='Foo')
+        self.assertEqual(len(self.stderr.method_calls), 2)
+        banner_call = self.stderr.method_calls[0]
+        self.assertEqual(banner_call, ['write', ('Foo\n',), {}])
+
+        # no banner
+        self.stderr.reset_mock()
+        self.infunc.side_effect = EOFError('Finished')
+        self.console.interact(banner='')
+        self.assertEqual(len(self.stderr.method_calls), 1)
+
 
 def test_main():
     support.run_unittest(TestInteractiveConsole)