mirror of
https://github.com/python/cpython.git
synced 2025-12-08 06:10:17 +00:00
[3.14] gh-139246: zero-width word paste can be wrong in default repl (GH-139254) (GH-140796)
gh-139246: zero-width word paste can be wrong in default repl (GH-139254)
(cherry picked from commit 4e6dba0ef7)
Signed-off-by: yihong0618 <zouzou0208@gmail.com>
Co-authored-by: yihong <zouzou0208@gmail.com>
Co-authored-by: grayjk <grayjk@gmail.com>
This commit is contained in:
parent
cb8b2bad34
commit
d729087c06
3 changed files with 29 additions and 1 deletions
|
|
@ -5,10 +5,29 @@
|
|||
|
||||
class TestUtils(TestCase):
|
||||
def test_str_width(self):
|
||||
characters = ['a', '1', '_', '!', '\x1a', '\u263A', '\uffb9']
|
||||
characters = [
|
||||
'a',
|
||||
'1',
|
||||
'_',
|
||||
'!',
|
||||
'\x1a',
|
||||
'\u263A',
|
||||
'\uffb9',
|
||||
'\N{LATIN SMALL LETTER E WITH ACUTE}', # é
|
||||
'\N{LATIN SMALL LETTER E WITH CEDILLA}', # ȩ
|
||||
'\u00ad',
|
||||
]
|
||||
for c in characters:
|
||||
self.assertEqual(str_width(c), 1)
|
||||
|
||||
zero_width_characters = [
|
||||
'\N{COMBINING ACUTE ACCENT}',
|
||||
'\N{ZERO WIDTH JOINER}',
|
||||
]
|
||||
for c in zero_width_characters:
|
||||
with self.subTest(character=c):
|
||||
self.assertEqual(str_width(c), 0)
|
||||
|
||||
characters = [chr(99989), chr(99999)]
|
||||
for c in characters:
|
||||
self.assertEqual(str_width(c), 2)
|
||||
|
|
@ -25,6 +44,8 @@ def test_wlen(self):
|
|||
|
||||
self.assertEqual(wlen('hello'), 5)
|
||||
self.assertEqual(wlen('hello' + '\x1a'), 7)
|
||||
self.assertEqual(wlen('e\N{COMBINING ACUTE ACCENT}'), 1)
|
||||
self.assertEqual(wlen('a\N{ZERO WIDTH JOINER}b'), 2)
|
||||
|
||||
def test_prev_next_window(self):
|
||||
def gen_normal():
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue