From b1c54f35df0078b2cc6cfb1899164466f8475065 Mon Sep 17 00:00:00 2001 From: Batuhan Taskaya Date: Tue, 20 Sep 2022 11:53:18 +0200 Subject: [PATCH] gh-96954: Add tests for unicodedata.name/lookup They were undertested, and since #96954 might involve a rewrite of this part of the code we want to ensure that there won't be any behavioral change. Co-authored-by: Carl Friedrich Bolz-Tereick --- Lib/test/test_unicodedata.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Lib/test/test_unicodedata.py b/Lib/test/test_unicodedata.py index 0c31d80e103dbf..a85bda3144bc35 100644 --- a/Lib/test/test_unicodedata.py +++ b/Lib/test/test_unicodedata.py @@ -71,7 +71,7 @@ class UnicodeFunctionsTest(UnicodeDatabaseTest): # Update this if the database changes. Make sure to do a full rebuild # (e.g. 'make distclean && make') to get the correct checksum. - expectedchecksum = '84b88a89f40aeae96852732f9dc0ee08be49780f' + expectedchecksum = '26ff0d31c14194b4606a5b3a81ac36df3a14e331' @requires_resource('cpu') def test_function_checksum(self): @@ -91,11 +91,19 @@ def test_function_checksum(self): str(self.db.mirrored(char)), str(self.db.combining(char)), unicodedata.east_asian_width(char), + self.db.name(char, ""), ] h.update(''.join(data).encode("ascii")) result = h.hexdigest() self.assertEqual(result, self.expectedchecksum) + @requires_resource('cpu') + def test_name_inverse_lookup(self): + for i in range(sys.maxunicode + 1): + char = chr(i) + if looked_name := self.db.name(char, None): + self.assertEqual(self.db.lookup(looked_name), char) + def test_digit(self): self.assertEqual(self.db.digit('A', None), None) self.assertEqual(self.db.digit('9'), 9)