test: Add method to easily set last_visited attributes

This commit is contained in:
Arvin Verain
2025-03-28 21:35:01 +08:00
parent 07f30122e6
commit 6d75f7cff4
3 changed files with 25 additions and 20 deletions

View File

@@ -1294,41 +1294,35 @@ class TestScreen(BaseTest):
self.ae(lvco(), '0x\n1x')
# test: obscure prompt
s.scroll(2, False)
s.set_last_visited_prompt()
self.ae(lvco(), '0x\n1x')
# test: prompts without output
s.scroll(s.scrolled_by, False)
s.resize(5, s.columns + 5)
draw_prompt('4')
# resizing resets last visited, rely on scroll_to_prompt
s.resize(2, s.columns + 4)
s.scroll_to_prompt()
s.scroll_to_prompt(1)
self.ae(str(s.visual_line(0)), '$ 4')
s.set_last_visited_prompt(2)
self.ae(lvco(), '')
s.resize(5, s.columns)
draw_prompt('wrapcmd')
s.scroll_to_prompt(1)
self.ae(lvco(), '')
draw_output(1, 'wrapout'), draw_output(1, 'y', False)
s.set_last_visited_prompt(0)
self.ae(lvco(), '0wrapout\n0y\n')
# wrap long prompt with long output
s.resize(5, s.columns - 4)
self.ae(str(s.visual_line(0)), 'pcmd')
s.resize(5, s.columns - 5)
# test: set last visited to previous empty prompt
s.scroll_to_prompt(-2)
self.ae(str(s.visual_line(0)), '$ 4')
self.ae(lvco(), '0wrapout\n0y\n')
mark_prompt(), s.draw('$ end')
draw_prompt('end')
s.scroll_to_prompt(-1)
self.ae(lvco(), '0wrapout\n0y')
s.scroll_to_prompt(1)
self.ae(lvco(), '0wrapout\n0y')
# test: set last visited to continued line of long prompt
s.scroll_to_prompt(2)
self.ae(str(s.visual_line(0)), 'pcmd')
self.ae(lvco(), '0wrapout\n0y')
s.scroll_to_prompt()
s.set_last_visited_prompt(1)
self.ae(lvco(), '0wrapout\n0y')
# test: set last visited to continued line of output
s.carriage_return(), s.index()
draw_output(1, 'z')
s.scroll_to_prompt(1)
s.set_last_visited_prompt(3)
self.ae(lvco(), '0wrapout\n0y')
# test: losing markers past scrollback
@@ -1339,16 +1333,16 @@ class TestScreen(BaseTest):
draw_output(1, 'x')
# remove prompt start above, set last visited to within prompt
s.clear_scrollback()
s.scroll_to_prompt(1)
s.set_last_visited_prompt(0)
self.ae(lvco(), '0vvvvvvvvvv\n0w')
# remove output start above, set last visited to within output
draw_output(3, 'y', False), draw_output(1, 'z', False)
s.clear_scrollback()
s.scroll_to_prompt(1)
s.set_last_visited_prompt(0)
self.ae(lvco(), 'vvvvvv\n0w')
draw_output(1, 'end', False)
s.clear_scrollback()
s.scroll_to_prompt(1)
s.set_last_visited_prompt(0)
self.ae(lvco(), 'v\n0w')
# clear last visited line without setting new one
draw_output(1, 'end', False)