From 14ed7f23c29737f4ec083cd76e17b6ef914eabd2 Mon Sep 17 00:00:00 2001 From: Jesus Cea Date: Sun, 19 Feb 2012 03:52:23 +0100 Subject: 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 a1799f9..3a46355 100644 --- a/Lib/test/test_cmd.py +++ b/Lib/test/test_cmd.py @@ -180,6 +180,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 = io.StringIO("print test\nprint test2") output = io.StringIO() @@ -192,6 +200,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 support.run_doctest(test_cmd, verbose) -- cgit v0.12