Closes #17730: in code.interact(), when banner="", do not print anything.

Also adds tests for banner printing.
This commit is contained in:
Georg Brandl 2013-10-13 21:49:06 +02:00
parent a8fc7f6fac
commit fbc3c3c2be
3 changed files with 19 additions and 2 deletions

View file

@ -64,6 +64,20 @@ class TestInteractiveConsole(unittest.TestCase):
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)