@@ -90,3 +90,52 @@ def test_capture_pane(session: Session) -> None:
90
90
assert pane_contents == r'$ printf "\n%s\n" "Hello World !"{}' .format (
91
91
"\n \n Hello World !\n $"
92
92
)
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