import os, sys from pyvterm import PtyController, run_vterm, greensock2 def test_ls(): ptyc = PtyController('ls', ['ls', '/bin']) expected = [n for n in os.listdir('/bin') if not n.startswith('.')] buf = ptyc.readall() words = buf.split() words.sort() expected.sort() assert words == expected def test_python(): ptyc = PtyController('python', ['python']) ptyc.write('print 6*7\n') ptyc.write('raise SystemExit\n') buf = ptyc.readall() assert '42' in buf def test_run_vterm(): vterm = run_vterm(sys.executable, [sys.executable], width=len(sys.version)) vterm.expect(sys.version) vterm.expect('>>> ') vterm.write('print 6*7\n') vterm.expect('print 6*7') vterm.expect('42\n>>> ') def test_bash(): vterm = run_vterm('bash', ['bash']) vterm.write('echo hello world 42\n') vterm.expect('echo hello world 42') vterm.expect('hello world 42\n') def test_vi(): vt = run_vterm("vi", ["vi"]) vt.expect("version info") vt.write('itext\nsome more text\nthird line\n') vt.expect('third line') vt.writekey('UP') vt.writekey('UP') vt.writekey('RIGHT') vt.write('XXX') vt.expect('sXXXome more text') vt.writekey('ESCAPE') vt.write('A') vt.writekey('ESCAPE') vt.write('iYYY') vt.expect('sXXXome more texYYYt') vt.writekey('ESCAPE') vt.write('I123') vt.expect('\n123sXXXome more texYYYt') vt.writekey('BACKSPACE') vt.expect('\n12sXXXome more texYYYt') vt.writekey('ESCAPE') vt.write(':q!') vt.expect(':q!')