| import io |
| import sys |
| import unittest |
| try: |
| import builtins |
| except ImportError: |
| import __builtin__ as builtins |
| |
| PY3 = (sys.version_info[0] >= 3) |
| input_name = 'input' if PY3 else 'raw_input' |
| |
| from pexpect import FSM |
| |
| class FSMTestCase(unittest.TestCase): |
| def test_run_fsm(self): |
| def _input(prompt): |
| return "167 3 2 2 * * * 1 - =" |
| orig_input = getattr(builtins, input_name) |
| orig_stdout = sys.stdout |
| setattr(builtins, input_name, _input) |
| sys.stdout = sio = (io.StringIO if PY3 else io.BytesIO)() |
| |
| try: |
| FSM.main() |
| finally: |
| setattr(builtins, input_name, orig_input) |
| sys.stdout = orig_stdout |
| |
| printed = sio.getvalue() |
| assert '2003' in printed, printed |
| |
| |
| if __name__ == '__main__': |
| unittest.main() |