Framework for testing with external programs via a PTY

This commit is contained in:
Kovid Goyal
2022-02-21 14:08:10 +05:30
parent a559210923
commit 63f974531b
3 changed files with 113 additions and 9 deletions

View File

@@ -3,14 +3,30 @@
import os
from . import BaseTest
import sys
from kittens.ssh.main import get_connection_data
from kitty.utils import SSHConnectionData
from . import BaseTest
class SSHTest(BaseTest):
def test_basic_pty_operations(self):
pty = self.create_pty('echo hello')
self.assertTrue(pty.wait_for_input_from_child())
pty.process_input_from_child()
self.ae(pty.screen_contents(), 'hello')
pty = self.create_pty([sys.executable, '-c', '''\
import array, fcntl, sys, termios
buf = array.array('H', [0, 0, 0, 0])
fcntl.ioctl(sys.stdout, termios.TIOCGWINSZ, buf)
print(' '.join(map(str, buf)))'''], lines=13, cols=17)
self.assertTrue(pty.wait_for_input_from_child())
pty.process_input_from_child()
self.ae(pty.screen_contents(), '13 17 0 0')
def test_ssh_connection_data(self):
def t(cmdline, binary='ssh', host='main', port=None, identity_file=''):
if identity_file: