From b71ac0e21d0f343e28284e940046716cef8d10ad Mon Sep 17 00:00:00 2001 From: Michael Droettboom Date: Fri, 12 Aug 2022 09:10:53 -0400 Subject: [PATCH 1/3] gh-94808: Coverage: Test uppercase string literal prefixes --- Lib/test/test_string_literals.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Lib/test/test_string_literals.py b/Lib/test/test_string_literals.py index 3a3830bcb6e96f..989f1bf406e1d3 100644 --- a/Lib/test/test_string_literals.py +++ b/Lib/test/test_string_literals.py @@ -266,6 +266,13 @@ def test_eval_str_u(self): self.assertRaises(SyntaxError, eval, """ bu'' """) self.assertRaises(SyntaxError, eval, """ ub'' """) + def test_uppercase_prefixes(self): + self.assertEqual(eval(""" B'x' """), b'x') + self.assertEqual(eval(r""" R'\x01' """), '\\x01') + self.assertEqual(eval(r""" BR'\x01' """), b'\\' + b'x01') + self.assertEqual(eval(""" F'{1+1}' """), '2') + self.assertEqual(eval(""" U'\U0001d120' """), '\U0001d120') + def check_encoding(self, encoding, extra=""): modname = "xx_" + encoding.replace("-", "_") fn = os.path.join(self.tmpdir, modname + ".py") From ba0f88ae02b3c2ee4c6ae94a81adb047803e7bd5 Mon Sep 17 00:00:00 2001 From: Michael Droettboom Date: Thu, 22 Sep 2022 10:04:56 -0400 Subject: [PATCH 2/3] Simplify tests to just show that they match lowercase versions --- Lib/test/test_string_literals.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Lib/test/test_string_literals.py b/Lib/test/test_string_literals.py index 989f1bf406e1d3..cd555614c71e75 100644 --- a/Lib/test/test_string_literals.py +++ b/Lib/test/test_string_literals.py @@ -268,10 +268,10 @@ def test_eval_str_u(self): def test_uppercase_prefixes(self): self.assertEqual(eval(""" B'x' """), b'x') - self.assertEqual(eval(r""" R'\x01' """), '\\x01') - self.assertEqual(eval(r""" BR'\x01' """), b'\\' + b'x01') - self.assertEqual(eval(""" F'{1+1}' """), '2') - self.assertEqual(eval(""" U'\U0001d120' """), '\U0001d120') + self.assertEqual(eval(r""" R'\x01' """), r'\x01') + self.assertEqual(eval(r""" BR'\x01' """), br'\x01') + self.assertEqual(eval(""" F'{1+1}' """), f'{1+1}') + self.assertEqual(eval(""" U'\U0001d120' """), u'\U0001d120') def check_encoding(self, encoding, extra=""): modname = "xx_" + encoding.replace("-", "_") From 5f64dccf4270c537201fd84c9f98aae591337c93 Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Sat, 24 Sep 2022 12:01:06 +0300 Subject: [PATCH 3/3] Update Lib/test/test_string_literals.py --- Lib/test/test_string_literals.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/test/test_string_literals.py b/Lib/test/test_string_literals.py index cd555614c71e75..7247b7e48bc2b6 100644 --- a/Lib/test/test_string_literals.py +++ b/Lib/test/test_string_literals.py @@ -271,7 +271,7 @@ def test_uppercase_prefixes(self): self.assertEqual(eval(r""" R'\x01' """), r'\x01') self.assertEqual(eval(r""" BR'\x01' """), br'\x01') self.assertEqual(eval(""" F'{1+1}' """), f'{1+1}') - self.assertEqual(eval(""" U'\U0001d120' """), u'\U0001d120') + self.assertEqual(eval(r""" U'\U0001d120' """), u'\U0001d120') def check_encoding(self, encoding, extra=""): modname = "xx_" + encoding.replace("-", "_")