mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
Issue27573 code.interact prints a message when exiting.
This commit is contained in:
parent
a0d3eeff86
commit
dd51d16b48
3 changed files with 14 additions and 2 deletions
|
@ -147,6 +147,9 @@ interpreter objects as well as the following additions.
|
||||||
.. versionchanged:: 3.4
|
.. versionchanged:: 3.4
|
||||||
To suppress printing any banner, pass an empty string.
|
To suppress printing any banner, pass an empty string.
|
||||||
|
|
||||||
|
.. versionchanged:: 3.6
|
||||||
|
Now prints a brief message when exiting.
|
||||||
|
|
||||||
|
|
||||||
.. method:: InteractiveConsole.push(line)
|
.. method:: InteractiveConsole.push(line)
|
||||||
|
|
||||||
|
|
|
@ -230,6 +230,7 @@ class InteractiveConsole(InteractiveInterpreter):
|
||||||
self.write("\nKeyboardInterrupt\n")
|
self.write("\nKeyboardInterrupt\n")
|
||||||
self.resetbuffer()
|
self.resetbuffer()
|
||||||
more = 0
|
more = 0
|
||||||
|
self.write('now exiting %s...\n' % self.__class__.__name__)
|
||||||
|
|
||||||
def push(self, line):
|
def push(self, line):
|
||||||
"""Push a line to the interpreter.
|
"""Push a line to the interpreter.
|
||||||
|
|
|
@ -69,7 +69,7 @@ class TestInteractiveConsole(unittest.TestCase):
|
||||||
# with banner
|
# with banner
|
||||||
self.infunc.side_effect = EOFError('Finished')
|
self.infunc.side_effect = EOFError('Finished')
|
||||||
self.console.interact(banner='Foo')
|
self.console.interact(banner='Foo')
|
||||||
self.assertEqual(len(self.stderr.method_calls), 2)
|
self.assertEqual(len(self.stderr.method_calls), 3)
|
||||||
banner_call = self.stderr.method_calls[0]
|
banner_call = self.stderr.method_calls[0]
|
||||||
self.assertEqual(banner_call, ['write', ('Foo\n',), {}])
|
self.assertEqual(banner_call, ['write', ('Foo\n',), {}])
|
||||||
|
|
||||||
|
@ -77,7 +77,15 @@ class TestInteractiveConsole(unittest.TestCase):
|
||||||
self.stderr.reset_mock()
|
self.stderr.reset_mock()
|
||||||
self.infunc.side_effect = EOFError('Finished')
|
self.infunc.side_effect = EOFError('Finished')
|
||||||
self.console.interact(banner='')
|
self.console.interact(banner='')
|
||||||
self.assertEqual(len(self.stderr.method_calls), 1)
|
self.assertEqual(len(self.stderr.method_calls), 2)
|
||||||
|
|
||||||
|
def test_exit_msg(self):
|
||||||
|
self.infunc.side_effect = EOFError('Finished')
|
||||||
|
self.console.interact(banner='')
|
||||||
|
self.assertEqual(len(self.stderr.method_calls), 2)
|
||||||
|
err_msg = self.stderr.method_calls[1]
|
||||||
|
expected = 'now exiting InteractiveConsole...\n'
|
||||||
|
self.assertEqual(err_msg, ['write', (expected,), {}])
|
||||||
|
|
||||||
def test_cause_tb(self):
|
def test_cause_tb(self):
|
||||||
self.infunc.side_effect = ["raise ValueError('') from AttributeError",
|
self.infunc.side_effect = ["raise ValueError('') from AttributeError",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue