Test prompt drawing after screen is shrunk
This commit is contained in:
parent
da5e37620e
commit
65c7ecbc30
@ -216,6 +216,8 @@ class PTY:
|
|||||||
raise TimeoutError('The condition was not met')
|
raise TimeoutError('The condition was not met')
|
||||||
|
|
||||||
def set_window_size(self, rows=25, columns=80):
|
def set_window_size(self, rows=25, columns=80):
|
||||||
|
if hasattr(self, 'screen'):
|
||||||
|
self.screen.resize(rows, columns)
|
||||||
x_pixels = columns * self.cell_width
|
x_pixels = columns * self.cell_width
|
||||||
y_pixels = rows * self.cell_height
|
y_pixels = rows * self.cell_height
|
||||||
s = struct.pack('HHHH', rows, columns, x_pixels, y_pixels)
|
s = struct.pack('HHHH', rows, columns, x_pixels, y_pixels)
|
||||||
|
|||||||
@ -70,7 +70,23 @@ RPS1="{rps1}"
|
|||||||
self.ae(pty.callbacks.titlebuf, ['~'])
|
self.ae(pty.callbacks.titlebuf, ['~'])
|
||||||
pty.callbacks.clear()
|
pty.callbacks.clear()
|
||||||
pty.send_cmd_to_child('mkdir test && ls -a')
|
pty.send_cmd_to_child('mkdir test && ls -a')
|
||||||
pty.wait_till(lambda: pty.screen_contents().count(ps1) == 2)
|
pty.wait_till(lambda: pty.screen_contents().count(rps1) == 2)
|
||||||
self.ae(pty.callbacks.titlebuf, ['mkdir test && ls -a', '~'])
|
self.ae(pty.callbacks.titlebuf, ['mkdir test && ls -a', '~'])
|
||||||
q = '\n'.join(str(pty.screen.line(i)) for i in range(1, pty.screen.cursor.y))
|
q = '\n'.join(str(pty.screen.line(i)) for i in range(1, pty.screen.cursor.y))
|
||||||
self.ae(pty.last_cmd_output(), q)
|
self.ae(pty.last_cmd_output(), q)
|
||||||
|
# shrink the screen
|
||||||
|
pty.write_to_child(r'echo $COLUMNS')
|
||||||
|
pty.set_window_size(rows=20, columns=40)
|
||||||
|
q = ps1 + 'echo $COLUMNS' + ' ' * (40 - len(ps1) - len(rps1) - len('echo $COLUMNS')) + rps1
|
||||||
|
pty.process_input_from_child()
|
||||||
|
|
||||||
|
def redrawn():
|
||||||
|
q = pty.screen_contents()
|
||||||
|
return '$COLUMNS' in q and q.count(rps1) == 2 and q.count(ps1) == 2
|
||||||
|
|
||||||
|
pty.wait_till(redrawn)
|
||||||
|
self.ae(q, str(pty.screen.line(pty.screen.cursor.y)))
|
||||||
|
pty.write_to_child('\r')
|
||||||
|
pty.wait_till(lambda: pty.screen_contents().count(rps1) == 3)
|
||||||
|
self.ae('40', str(pty.screen.line(pty.screen.cursor.y - 1)))
|
||||||
|
self.ae(q, str(pty.screen.line(pty.screen.cursor.y - 2)))
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user