Skip to content

Commit b85f0b8

Browse files
test for issue #472
Appears to be causes by unhighlight paren repainting the wrong tokens
1 parent 01cb7d0 commit b85f0b8

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

bpython/test/test_curtsies_painting.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ def refresh(self):
122122
def send_refreshes(self):
123123
while self.refresh_requests:
124124
self.repl.process_event(self.refresh_requests.pop())
125+
_, _ = self.repl.paint()
125126

126127
def enter(self, line=None):
127128
"""Enter a line of text, avoiding autocompletion windows
@@ -504,3 +505,26 @@ def test_unhighlight_paren_bugs(self):
504505
screen = fsarray([cyan(u">>> ")+yellow('('),
505506
green(u"... ")+yellow(')')+bold(cyan(" "))])
506507
self.assert_paint(screen, (1, 6))
508+
509+
def send_key(self, key):
510+
self.repl.process_event(u'<SPACE>' if key == ' ' else key)
511+
self.repl.paint() # has some side effects we need to be wary of
512+
513+
def test_472(self):
514+
[self.send_key(c) for c in "(1, 2, 3)"]
515+
with output_to_repl(self.repl):
516+
self.send_key('\n')
517+
self.send_refreshes()
518+
self.send_key('<UP>')
519+
self.repl.paint()
520+
[self.send_key('<LEFT>') for _ in range(4)]
521+
self.send_key('<BACKSPACE>')
522+
self.send_key('4')
523+
self.repl.on_enter()
524+
self.send_refreshes()
525+
screen = [">>> (1, 2, 3)",
526+
'(1, 2, 3)',
527+
'>>> (1, 4, 3)',
528+
'(1, 4, 3)',
529+
'>>> ']
530+
self.assert_paint_ignoring_formatting(screen, (4, 4))

0 commit comments

Comments
 (0)