mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
gh-124502: Add PyUnicode_Equal() function (#124504)
This commit is contained in:
parent
c5df1cb7bd
commit
a7f0727ca5
11 changed files with 111 additions and 2 deletions
|
@ -1903,6 +1903,39 @@ class PyUnicodeWriterFormatTest(unittest.TestCase):
|
|||
|
||||
self.assertEqual(writer.finish(), 'Hello World.')
|
||||
|
||||
def test_unicode_equal(self):
|
||||
unicode_equal = _testlimitedcapi.unicode_equal
|
||||
|
||||
def copy(text):
|
||||
return text.encode().decode()
|
||||
|
||||
self.assertTrue(unicode_equal("", ""))
|
||||
self.assertTrue(unicode_equal("abc", "abc"))
|
||||
self.assertTrue(unicode_equal("abc", copy("abc")))
|
||||
self.assertTrue(unicode_equal("\u20ac", copy("\u20ac")))
|
||||
self.assertTrue(unicode_equal("\U0010ffff", copy("\U0010ffff")))
|
||||
|
||||
self.assertFalse(unicode_equal("abc", "abcd"))
|
||||
self.assertFalse(unicode_equal("\u20ac", "\u20ad"))
|
||||
self.assertFalse(unicode_equal("\U0010ffff", "\U0010fffe"))
|
||||
|
||||
# str subclass
|
||||
self.assertTrue(unicode_equal("abc", Str("abc")))
|
||||
self.assertTrue(unicode_equal(Str("abc"), "abc"))
|
||||
self.assertFalse(unicode_equal("abc", Str("abcd")))
|
||||
self.assertFalse(unicode_equal(Str("abc"), "abcd"))
|
||||
|
||||
# invalid type
|
||||
for invalid_type in (b'bytes', 123, ("tuple",)):
|
||||
with self.subTest(invalid_type=invalid_type):
|
||||
with self.assertRaises(TypeError):
|
||||
unicode_equal("abc", invalid_type)
|
||||
with self.assertRaises(TypeError):
|
||||
unicode_equal(invalid_type, "abc")
|
||||
|
||||
# CRASHES unicode_equal("abc", NULL)
|
||||
# CRASHES unicode_equal(NULL, "abc")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue