gh-123024: Correctly prepare/restore around help and show-history commands (#124485)

Co-authored-by: Emily Morehouse <emily@cuttlesoft.com>
Co-authored-by: Pablo Galindo Salgado <Pablogsal@gmail.com>
This commit is contained in:
Lysandros Nikolaou 2025-01-21 22:04:30 +01:00 committed by GitHub
parent d147e5e52c
commit 5a9afe2362
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 77 additions and 57 deletions

View file

@ -1343,3 +1343,16 @@ class TestMain(ReplTestCase):
def test_keyboard_interrupt_after_isearch(self):
output, exit_code = self.run_repl(["\x12", "\x03", "exit"])
self.assertEqual(exit_code, 0)
def test_prompt_after_help(self):
output, exit_code = self.run_repl(["help", "q", "exit"])
# Regex pattern to remove ANSI escape sequences
ansi_escape = re.compile(r"(\x1B(=|>|(\[)[0-?]*[ -\/]*[@-~]))")
cleaned_output = ansi_escape.sub("", output)
self.assertEqual(exit_code, 0)
# Ensure that we don't see multiple prompts after exiting `help`
# Extra stuff (newline and `exit` rewrites) are necessary
# because of how run_repl works.
self.assertNotIn(">>> \n>>> >>>", cleaned_output)