From bc7d28c949dddc9051ad7e34924f823febdf87ee Mon Sep 17 00:00:00 2001 From: sobolevn Date: Wed, 16 Aug 2023 09:50:37 +0300 Subject: [PATCH 1/5] gh-107905: Test raising `__value__` for `TypeAliasType` --- Lib/test/test_type_aliases.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Lib/test/test_type_aliases.py b/Lib/test/test_type_aliases.py index 0ce97f57de6860..ee175dcd001915 100644 --- a/Lib/test/test_type_aliases.py +++ b/Lib/test/test_type_aliases.py @@ -168,6 +168,15 @@ def test_recursive_repr(self): self.assertEqual(repr(GenericRecursive[GenericRecursive[int]]), "GenericRecursive[GenericRecursive[int]]") + def test_raising(self): + type MissingName = list[_My_X] + with self.assertRaisesRegex(NameError, "name '_My_X' is not defined"): + MissingName.__value__ + + type ExprException = 1 / 0 + with self.assertRaises(ZeroDivisionError): + ExprException.__value__ + class TypeAliasConstructorTest(unittest.TestCase): def test_basic(self): From d227a9d89c96fdfaac11403e682ba2b5a8c5f709 Mon Sep 17 00:00:00 2001 From: Nikita Sobolev Date: Wed, 16 Aug 2023 21:15:47 +0300 Subject: [PATCH 2/5] Update Lib/test/test_type_aliases.py Co-authored-by: Jelle Zijlstra --- Lib/test/test_type_aliases.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Lib/test/test_type_aliases.py b/Lib/test/test_type_aliases.py index ee175dcd001915..645acd753ce5c6 100644 --- a/Lib/test/test_type_aliases.py +++ b/Lib/test/test_type_aliases.py @@ -172,6 +172,10 @@ def test_raising(self): type MissingName = list[_My_X] with self.assertRaisesRegex(NameError, "name '_My_X' is not defined"): MissingName.__value__ + _My_X = int + self.assertEquals(MissingName.__value__, list[int]) + del _My_X + self.assertEquals(MissingName.__value__, list[int]) type ExprException = 1 / 0 with self.assertRaises(ZeroDivisionError): From 7fc63762489dce6a5b408fc5a1e3c9e7f0a27bbd Mon Sep 17 00:00:00 2001 From: sobolevn Date: Thu, 17 Aug 2023 10:17:37 +0300 Subject: [PATCH 3/5] Fix CI --- Lib/test/test_type_aliases.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Lib/test/test_type_aliases.py b/Lib/test/test_type_aliases.py index 645acd753ce5c6..830e24c86b310e 100644 --- a/Lib/test/test_type_aliases.py +++ b/Lib/test/test_type_aliases.py @@ -170,13 +170,18 @@ def test_recursive_repr(self): def test_raising(self): type MissingName = list[_My_X] - with self.assertRaisesRegex(NameError, "name '_My_X' is not defined"): + with self.assertRaisesRegex( + NameError, + "cannot access free variable '_My_X' where it is not associated with a value", + ): MissingName.__value__ _My_X = int self.assertEquals(MissingName.__value__, list[int]) del _My_X - self.assertEquals(MissingName.__value__, list[int]) + # Cache should still work: + self.assertEquals(MissingName.__value__, list[int]) + # Explicit exception: type ExprException = 1 / 0 with self.assertRaises(ZeroDivisionError): ExprException.__value__ From 27f3ea5d58118c9229ab9ce2e4181847f5608d09 Mon Sep 17 00:00:00 2001 From: sobolevn Date: Thu, 17 Aug 2023 13:58:50 +0300 Subject: [PATCH 4/5] Fix CI --- Lib/test/test_type_aliases.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Lib/test/test_type_aliases.py b/Lib/test/test_type_aliases.py index 830e24c86b310e..05cd6151d311fd 100644 --- a/Lib/test/test_type_aliases.py +++ b/Lib/test/test_type_aliases.py @@ -176,10 +176,10 @@ def test_raising(self): ): MissingName.__value__ _My_X = int - self.assertEquals(MissingName.__value__, list[int]) + self.assertEqual(MissingName.__value__, list[int]) del _My_X # Cache should still work: - self.assertEquals(MissingName.__value__, list[int]) + self.assertEqual(MissingName.__value__, list[int]) # Explicit exception: type ExprException = 1 / 0 From f45ad9c375f70868b8526e2acd55b87c96b7ea4d Mon Sep 17 00:00:00 2001 From: Jelle Zijlstra Date: Mon, 21 Aug 2023 06:14:43 -0700 Subject: [PATCH 5/5] Apply suggestions from code review --- Lib/test/test_type_aliases.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Lib/test/test_type_aliases.py b/Lib/test/test_type_aliases.py index 05cd6151d311fd..8f0a998e1f3dc1 100644 --- a/Lib/test/test_type_aliases.py +++ b/Lib/test/test_type_aliases.py @@ -176,10 +176,10 @@ def test_raising(self): ): MissingName.__value__ _My_X = int - self.assertEqual(MissingName.__value__, list[int]) + self.assertEqual(MissingName.__value__, list[int]) del _My_X # Cache should still work: - self.assertEqual(MissingName.__value__, list[int]) + self.assertEqual(MissingName.__value__, list[int]) # Explicit exception: type ExprException = 1 / 0