summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2022-10-26 00:02:48 (GMT)
committerGitHub <noreply@github.com>2022-10-26 00:02:48 (GMT)
commitcb323a86127166ee65d50be7d5d0e7848478ae70 (patch)
treebb6479db73f449b3fcc2c273d4cbf4a253fd9838
parent3e335f2c0de9b7fab542a18d603f5bbdb1fb2ef3 (diff)
downloadcpython-cb323a86127166ee65d50be7d5d0e7848478ae70.zip
cpython-cb323a86127166ee65d50be7d5d0e7848478ae70.tar.gz
cpython-cb323a86127166ee65d50be7d5d0e7848478ae70.tar.bz2
gh-94808: Improve coverage of `unicode_find` and `unicode_rfind` (GH-98648)
(cherry picked from commit b1783bc124712fa03fea9621a0eb4119d29b14fe) Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
-rw-r--r--Lib/test/test_unicode.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py
index f5ce095..0feb616 100644
--- a/Lib/test/test_unicode.py
+++ b/Lib/test/test_unicode.py
@@ -221,6 +221,20 @@ class UnicodeTest(string_tests.CommonTest,
self.checkequalnofix(9, 'abcdefghiabc', 'find', 'abc', 1)
self.checkequalnofix(-1, 'abcdefghiabc', 'find', 'def', 4)
+ # test utf-8 non-ascii char
+ self.checkequal(0, 'тест', 'find', 'т')
+ self.checkequal(3, 'тест', 'find', 'т', 1)
+ self.checkequal(-1, 'тест', 'find', 'т', 1, 3)
+ self.checkequal(-1, 'тест', 'find', 'e') # english `e`
+ # test utf-8 non-ascii slice
+ self.checkequal(1, 'тест тест', 'find', 'ес')
+ self.checkequal(1, 'тест тест', 'find', 'ес', 1)
+ self.checkequal(1, 'тест тест', 'find', 'ес', 1, 3)
+ self.checkequal(6, 'тест тест', 'find', 'ес', 2)
+ self.checkequal(-1, 'тест тест', 'find', 'ес', 6, 7)
+ self.checkequal(-1, 'тест тест', 'find', 'ес', 7)
+ self.checkequal(-1, 'тест тест', 'find', 'ec') # english `ec`
+
self.assertRaises(TypeError, 'hello'.find)
self.assertRaises(TypeError, 'hello'.find, 42)
# test mixed kinds
@@ -251,6 +265,19 @@ class UnicodeTest(string_tests.CommonTest,
self.checkequalnofix(9, 'abcdefghiabc', 'rfind', 'abc')
self.checkequalnofix(12, 'abcdefghiabc', 'rfind', '')
self.checkequalnofix(12, 'abcdefghiabc', 'rfind', '')
+ # test utf-8 non-ascii char
+ self.checkequal(1, 'тест', 'rfind', 'е')
+ self.checkequal(1, 'тест', 'rfind', 'е', 1)
+ self.checkequal(-1, 'тест', 'rfind', 'е', 2)
+ self.checkequal(-1, 'тест', 'rfind', 'e') # english `e`
+ # test utf-8 non-ascii slice
+ self.checkequal(6, 'тест тест', 'rfind', 'ес')
+ self.checkequal(6, 'тест тест', 'rfind', 'ес', 1)
+ self.checkequal(1, 'тест тест', 'rfind', 'ес', 1, 3)
+ self.checkequal(6, 'тест тест', 'rfind', 'ес', 2)
+ self.checkequal(-1, 'тест тест', 'rfind', 'ес', 6, 7)
+ self.checkequal(-1, 'тест тест', 'rfind', 'ес', 7)
+ self.checkequal(-1, 'тест тест', 'rfind', 'ec') # english `ec`
# test mixed kinds
self.checkequal(0, 'a' + '\u0102' * 100, 'rfind', 'a')
self.checkequal(0, 'a' + '\U00100304' * 100, 'rfind', 'a')