From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Fri, 21 Feb 2025 17:22:42 +0000 (+0100) Subject: [3.13] gh-126332: Add tests for _pyrepl.utils (GH-129325) (#130414) X-Git-Tag: v3.13.3~232 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3d88c183031c1367271d9cccdf90e06ff102945f;p=thirdparty%2FPython%2Fcpython.git [3.13] gh-126332: Add tests for _pyrepl.utils (GH-129325) (#130414) gh-126332: Add tests for _pyrepl.utils (GH-129325) (cherry picked from commit 0c4248f88e279df3254d62b34dfa3204a92c56a0) Co-authored-by: Pieter Eendebak --- diff --git a/Lib/test/test_pyrepl/test_utils.py b/Lib/test/test_pyrepl/test_utils.py new file mode 100644 index 000000000000..0d59968206a6 --- /dev/null +++ b/Lib/test/test_pyrepl/test_utils.py @@ -0,0 +1,27 @@ +from unittest import TestCase + +from _pyrepl.utils import str_width, wlen + + +class TestUtils(TestCase): + def test_str_width(self): + characters = ['a', '1', '_', '!', '\x1a', '\u263A', '\uffb9'] + for c in characters: + self.assertEqual(str_width(c), 1) + + characters = [chr(99989), chr(99999)] + for c in characters: + self.assertEqual(str_width(c), 2) + + def test_wlen(self): + for c in ['a', 'b', '1', '!', '_']: + self.assertEqual(wlen(c), 1) + self.assertEqual(wlen('\x1a'), 2) + + char_east_asian_width_N = chr(3800) + self.assertEqual(wlen(char_east_asian_width_N), 1) + char_east_asian_width_W = chr(4352) + self.assertEqual(wlen(char_east_asian_width_W), 2) + + self.assertEqual(wlen('hello'), 5) + self.assertEqual(wlen('hello' + '\x1a'), 7) diff --git a/Misc/NEWS.d/next/Tests/2025-01-26-20-17-58.gh-issue-126332.c0wUS-.rst b/Misc/NEWS.d/next/Tests/2025-01-26-20-17-58.gh-issue-126332.c0wUS-.rst new file mode 100644 index 000000000000..09a301faec47 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2025-01-26-20-17-58.gh-issue-126332.c0wUS-.rst @@ -0,0 +1 @@ +Add unit tests for pyrepl.