Add a zsh test for clone env serialization

This commit is contained in:
Kovid Goyal
2022-04-15 12:04:50 +05:30
parent c15a31e725
commit b866c3e783
3 changed files with 23 additions and 2 deletions

View File

@@ -71,6 +71,8 @@ class Callbacks:
self.open_urls = []
self.cc_buf = []
self.bell_count = 0
self.clone_cmds = []
self.current_clone_data = ''
def on_bell(self) -> None:
self.bell_count += 1
@@ -94,6 +96,19 @@ class Callbacks:
text = process_remote_print(msg)
print(text, file=sys.__stderr__)
def handle_remote_clone(self, msg):
if not msg:
if self.current_clone_data:
cdata, self.current_clone_data = self.current_clone_data, ''
from kitty.launch import CloneCmd
self.clone_cmds.append(CloneCmd(cdata))
self.current_clone_data = ''
return
num, rest = msg.split(':', 1)
if num == '0' or len(self.current_clone_data) > 1024 * 1024:
self.current_clone_data = ''
self.current_clone_data += rest
def handle_remote_ssh(self, msg):
from kittens.ssh.main import get_ssh_data
if self.pty:

View File

@@ -148,6 +148,12 @@ RPS1="{rps1}"
os.mkdir(q)
pty.send_cmd_to_child(f'cd {q}')
pty.wait_till(lambda: pty.screen.last_reported_cwd.endswith(q))
with self.run_shell(rc=f'''PS1="{ps1}"\nexport ES="a\n b c\nd"''') as pty:
pty.callbacks.clear()
pty.send_cmd_to_child('clone-in-kitty')
pty.wait_till(lambda: len(pty.callbacks.clone_cmds) == 1)
env = pty.callbacks.clone_cmds[0].env
self.ae(env.get('ES'), 'a\n b c\nd')
@unittest.skipUnless(shutil.which('fish'), 'fish not installed')
def test_fish_integration(self):