summaryrefslogtreecommitdiff
path: root/tests/test_FSM.py
blob: 3425fd2110e370ff711aef440fa7090a8d1febe3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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()