From 6e250998b6da145bd75f026a7e8add22bce9a95a Mon Sep 17 00:00:00 2001 From: Jesus Cea Date: Sun, 19 Feb 2012 03:54:08 +0100 Subject: [PATCH] Test for issue #13500 --- Lib/test/test_cmd.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/Lib/test/test_cmd.py b/Lib/test/test_cmd.py index c46fec8a5f..38288bb726 100644 --- a/Lib/test/test_cmd.py +++ b/Lib/test/test_cmd.py @@ -182,6 +182,14 @@ class TestAlternateInput(unittest.TestCase): def do_EOF(self, args): return True + + class simplecmd2(simplecmd): + + def do_EOF(self, args): + print('*** Unknown syntax: EOF', file=self.stdout) + return True + + def test_file_with_missing_final_nl(self): input = StringIO.StringIO("print test\nprint test2") output = StringIO.StringIO() @@ -194,6 +202,27 @@ class TestAlternateInput(unittest.TestCase): "(Cmd) ")) + def test_input_reset_at_EOF(self): + input = io.StringIO("print test\nprint test2") + output = io.StringIO() + cmd = self.simplecmd2(stdin=input, stdout=output) + cmd.use_rawinput = False + cmd.cmdloop() + self.assertMultiLineEqual(output.getvalue(), + ("(Cmd) test\n" + "(Cmd) test2\n" + "(Cmd) *** Unknown syntax: EOF\n")) + input = io.StringIO("print \n\n") + output = io.StringIO() + cmd.stdin = input + cmd.stdout = output + cmd.cmdloop() + self.assertMultiLineEqual(output.getvalue(), + ("(Cmd) \n" + "(Cmd) \n" + "(Cmd) *** Unknown syntax: EOF\n")) + + def test_main(verbose=None): from test import test_cmd test_support.run_doctest(test_cmd, verbose) -- 2.40.0