diff options
-rw-r--r-- | Lib/test/test_pyrepl/test_utils.py | 27 | ||||
-rw-r--r-- | Misc/NEWS.d/next/Tests/2025-01-26-20-17-58.gh-issue-126332.c0wUS-.rst | 1 |
2 files changed, 28 insertions, 0 deletions
diff --git a/Lib/test/test_pyrepl/test_utils.py b/Lib/test/test_pyrepl/test_utils.py new file mode 100644 index 00000000000..0d59968206a --- /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 00000000000..09a301faec4 --- /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. |