mirror of
https://github.com/python/cpython.git
synced 2025-10-22 17:33:55 +00:00
gh-131507: Add support for syntax highlighting in PyREPL (GH-133247)
Co-authored-by: Victorien <65306057+Viicos@users.noreply.github.com> Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
This commit is contained in:
parent
bfcbb28223
commit
fac41f56d4
21 changed files with 654 additions and 99 deletions
|
@ -1,6 +1,6 @@
|
|||
from unittest import TestCase
|
||||
|
||||
from _pyrepl.utils import str_width, wlen
|
||||
from _pyrepl.utils import str_width, wlen, prev_next_window
|
||||
|
||||
|
||||
class TestUtils(TestCase):
|
||||
|
@ -25,3 +25,38 @@ def test_wlen(self):
|
|||
|
||||
self.assertEqual(wlen('hello'), 5)
|
||||
self.assertEqual(wlen('hello' + '\x1a'), 7)
|
||||
|
||||
def test_prev_next_window(self):
|
||||
def gen_normal():
|
||||
yield 1
|
||||
yield 2
|
||||
yield 3
|
||||
yield 4
|
||||
|
||||
pnw = prev_next_window(gen_normal())
|
||||
self.assertEqual(next(pnw), (None, 1, 2))
|
||||
self.assertEqual(next(pnw), (1, 2, 3))
|
||||
self.assertEqual(next(pnw), (2, 3, 4))
|
||||
self.assertEqual(next(pnw), (3, 4, None))
|
||||
with self.assertRaises(StopIteration):
|
||||
next(pnw)
|
||||
|
||||
def gen_short():
|
||||
yield 1
|
||||
|
||||
pnw = prev_next_window(gen_short())
|
||||
self.assertEqual(next(pnw), (None, 1, None))
|
||||
with self.assertRaises(StopIteration):
|
||||
next(pnw)
|
||||
|
||||
def gen_raise():
|
||||
yield from gen_normal()
|
||||
1/0
|
||||
|
||||
pnw = prev_next_window(gen_raise())
|
||||
self.assertEqual(next(pnw), (None, 1, 2))
|
||||
self.assertEqual(next(pnw), (1, 2, 3))
|
||||
self.assertEqual(next(pnw), (2, 3, 4))
|
||||
self.assertEqual(next(pnw), (3, 4, None))
|
||||
with self.assertRaises(ZeroDivisionError):
|
||||
next(pnw)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue