mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
gh-134158: Fix PyREPL coloring of double braces in f/t-strings (gh-134159)
Co-authored-by: Loïc Simon <loic.simon@napta.io> Co-authored-by: Peter Bierma <zintensitydev@gmail.com> Co-authored-by: Łukasz Langa <lukasz@langa.pl>
This commit is contained in:
parent
b22460c44d
commit
71ea6a6798
3 changed files with 39 additions and 1 deletions
|
@ -517,6 +517,37 @@ class TestReaderInColor(ScreenEqualMixin, TestCase):
|
|||
self.assert_screen_equal(reader, code, clean=True)
|
||||
self.assert_screen_equal(reader, expected)
|
||||
|
||||
def test_syntax_highlighting_literal_brace_in_fstring_or_tstring(self):
|
||||
code = dedent(
|
||||
"""\
|
||||
f"{{"
|
||||
f"}}"
|
||||
f"a{{b"
|
||||
f"a}}b"
|
||||
f"a{{b}}c"
|
||||
t"a{{b}}c"
|
||||
f"{{{0}}}"
|
||||
f"{ {0} }"
|
||||
"""
|
||||
)
|
||||
expected = dedent(
|
||||
"""\
|
||||
{s}f"{z}{s}<<{z}{s}"{z}
|
||||
{s}f"{z}{s}>>{z}{s}"{z}
|
||||
{s}f"{z}{s}a<<{z}{s}b{z}{s}"{z}
|
||||
{s}f"{z}{s}a>>{z}{s}b{z}{s}"{z}
|
||||
{s}f"{z}{s}a<<{z}{s}b>>{z}{s}c{z}{s}"{z}
|
||||
{s}t"{z}{s}a<<{z}{s}b>>{z}{s}c{z}{s}"{z}
|
||||
{s}f"{z}{s}<<{z}{o}<{z}{n}0{z}{o}>{z}{s}>>{z}{s}"{z}
|
||||
{s}f"{z}{o}<{z} {o}<{z}{n}0{z}{o}>{z} {o}>{z}{s}"{z}
|
||||
"""
|
||||
).format(**colors).replace("<", "{").replace(">", "}")
|
||||
events = code_to_events(code)
|
||||
reader, _ = handle_all_events(events)
|
||||
self.assert_screen_equal(reader, code, clean=True)
|
||||
self.maxDiff=None
|
||||
self.assert_screen_equal(reader, expected)
|
||||
|
||||
def test_control_characters(self):
|
||||
code = 'flag = "🏳️🌈"'
|
||||
events = code_to_events(code)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue