@@ -90,3 +90,52 @@ def test_capture_pane(session: Session) -> None:
9090 assert pane_contents == r'$ printf "\n%s\n" "Hello World !"{}' .format (
9191 "\n \n Hello World !\n $"
9292 )
93+
94+
95+ def test_capture_pane_start (session : Session ) -> None :
96+ env = shutil .which ("env" )
97+ assert env is not None , "Cannot find usable `env` in PATH."
98+
99+ session .new_window (
100+ attach = True ,
101+ window_name = "capture_pane_start" ,
102+ window_shell = f"{ env } PS1='$ ' sh" ,
103+ )
104+ pane = session .attached_window .attached_pane
105+ assert pane is not None
106+ pane_contents = "\n " .join (pane .capture_pane ())
107+ assert pane_contents == "$"
108+ pane .send_keys (r'printf "%s"' , literal = True , suppress_history = False )
109+ pane_contents = "\n " .join (pane .capture_pane ())
110+ assert pane_contents == '$ printf "%s"\n $'
111+ pane .send_keys ("clear -x" , literal = True , suppress_history = False )
112+ pane_contents = "\n " .join (pane .capture_pane ())
113+ assert pane_contents == "$"
114+ pane_contents_start = pane .capture_pane (start = - 2 )
115+ assert pane_contents_start [0 ] == '$ printf "%s"'
116+ assert pane_contents_start [1 ] == "$ clear -x"
117+ assert pane_contents_start [- 1 ] == "$"
118+ pane_contents_start = pane .capture_pane (start = "-" )
119+ assert pane_contents == "$"
120+
121+
122+ def test_capture_pane_end (session : Session ) -> None :
123+ env = shutil .which ("env" )
124+ assert env is not None , "Cannot find usable `env` in PATH."
125+
126+ session .new_window (
127+ attach = True ,
128+ window_name = "capture_pane_end" ,
129+ window_shell = f"{ env } PS1='$ ' sh" ,
130+ )
131+ pane = session .attached_window .attached_pane
132+ assert pane is not None
133+ pane_contents = "\n " .join (pane .capture_pane ())
134+ assert pane_contents == "$"
135+ pane .send_keys (r'printf "%s"' , literal = True , suppress_history = False )
136+ pane_contents = "\n " .join (pane .capture_pane ())
137+ assert pane_contents == '$ printf "%s"\n $'
138+ pane_contents = "\n " .join (pane .capture_pane (end = 0 ))
139+ assert pane_contents == '$ printf "%s"'
140+ pane_contents = "\n " .join (pane .capture_pane (end = "-" ))
141+ assert pane_contents == '$ printf "%s"\n $'
0 commit comments