@@ -1903,6 +1903,33 @@ def test_recover_error(self):
19031903
19041904        self .assertEqual (writer .finish (), 'Hello World.' )
19051905
1906+     def  test_unicode_equal (self ):
1907+         unicode_equal  =  _testlimitedcapi .unicode_equal 
1908+ 
1909+         def  copy (text ):
1910+             return  text .encode ().decode ()
1911+ 
1912+         self .assertTrue (unicode_equal ("" , "" ))
1913+         self .assertTrue (unicode_equal ("abc" , "abc" ))
1914+         self .assertTrue (unicode_equal ("abc" , copy ("abc" )))
1915+         self .assertTrue (unicode_equal ("\u20ac " , copy ("\u20ac " )))
1916+         self .assertTrue (unicode_equal ("\U0010ffff " , copy ("\U0010ffff " )))
1917+ 
1918+         self .assertFalse (unicode_equal ("abc" , "abcd" ))
1919+         self .assertFalse (unicode_equal ("\u20ac " , "\u20ad " ))
1920+         self .assertFalse (unicode_equal ("\U0010ffff " , "\U0010fffe " ))
1921+ 
1922+         # invalid type 
1923+         for  invalid_type  in  (b'bytes' , 123 , ("tuple" ,)):
1924+             with  self .subTest (invalid_type = invalid_type ):
1925+                 with  self .assertRaises (TypeError ):
1926+                     unicode_equal ("abc" , invalid_type )
1927+                 with  self .assertRaises (TypeError ):
1928+                     unicode_equal (invalid_type , "abc" )
1929+ 
1930+         # CRASHES unicode_equal("abc", NULL) 
1931+         # CRASHES unicode_equal(NULL, "abc") 
1932+ 
19061933
19071934if  __name__  ==  "__main__" :
19081935    unittest .main ()
0 commit comments