@@ -1037,6 +1037,11 @@ class C(TypeVarTuple): pass
1037
1037
with self .assertRaisesRegex (TypeError ,
1038
1038
CANNOT_SUBCLASS_INSTANCE % 'TypeVarTuple' ):
1039
1039
class C (Ts ): pass
1040
+ with self .assertRaisesRegex (TypeError , r'Cannot subclass \*Ts' ):
1041
+ class C (* Ts ): pass
1042
+ with self .assertRaisesRegex (TypeError ,
1043
+ r'Cannot subclass typing\.Unpack' ):
1044
+ class C (Unpack ): pass
1040
1045
with self .assertRaisesRegex (TypeError , r'Cannot subclass \*Ts' ):
1041
1046
class C (Unpack [Ts ]): pass
1042
1047
@@ -3710,6 +3715,14 @@ class C(type(ClassVar)):
3710
3715
with self .assertRaisesRegex (TypeError , CANNOT_SUBCLASS_TYPE ):
3711
3716
class C (type (ClassVar [int ])):
3712
3717
pass
3718
+ with self .assertRaisesRegex (TypeError ,
3719
+ r'Cannot subclass typing\.ClassVar' ):
3720
+ class C (ClassVar ):
3721
+ pass
3722
+ with self .assertRaisesRegex (TypeError ,
3723
+ r'Cannot subclass typing\.ClassVar\[int\]' ):
3724
+ class C (ClassVar [int ]):
3725
+ pass
3713
3726
3714
3727
def test_cannot_init (self ):
3715
3728
with self .assertRaises (TypeError ):
@@ -3752,6 +3765,14 @@ class C(type(Final)):
3752
3765
with self .assertRaisesRegex (TypeError , CANNOT_SUBCLASS_TYPE ):
3753
3766
class C (type (Final [int ])):
3754
3767
pass
3768
+ with self .assertRaisesRegex (TypeError ,
3769
+ r'Cannot subclass typing\.Final' ):
3770
+ class C (Final ):
3771
+ pass
3772
+ with self .assertRaisesRegex (TypeError ,
3773
+ r'Cannot subclass typing\.Final\[int\]' ):
3774
+ class C (Final [int ]):
3775
+ pass
3755
3776
3756
3777
def test_cannot_init (self ):
3757
3778
with self .assertRaises (TypeError ):
@@ -6439,13 +6460,18 @@ def test_re_submodule(self):
6439
6460
self .assertEqual (len (w ), 1 )
6440
6461
6441
6462
def test_cannot_subclass (self ):
6442
- with self .assertRaises (TypeError ) as ex :
6443
-
6463
+ with self .assertRaisesRegex (
6464
+ TypeError ,
6465
+ r"type 're\.Match' is not an acceptable base type" ,
6466
+ ):
6444
6467
class A (typing .Match ):
6445
6468
pass
6446
-
6447
- self .assertEqual (str (ex .exception ),
6448
- "type 're.Match' is not an acceptable base type" )
6469
+ with self .assertRaisesRegex (
6470
+ TypeError ,
6471
+ r"type 're\.Pattern' is not an acceptable base type" ,
6472
+ ):
6473
+ class A (typing .Pattern ):
6474
+ pass
6449
6475
6450
6476
6451
6477
class AnnotatedTests (BaseTestCase ):
@@ -7037,6 +7063,13 @@ class C(type(TypeGuard)):
7037
7063
with self .assertRaisesRegex (TypeError , CANNOT_SUBCLASS_TYPE ):
7038
7064
class C (type (TypeGuard [int ])):
7039
7065
pass
7066
+ with self .assertRaisesRegex (TypeError ,
7067
+ r'Cannot subclass typing\.TypeGuard' ):
7068
+ class C (TypeGuard ):
7069
+ pass
7070
+ with self .assertRaisesRegex (TypeError , CANNOT_SUBCLASS_TYPE ):
7071
+ class C (type (TypeGuard [int ])):
7072
+ pass
7040
7073
7041
7074
def test_cannot_init (self ):
7042
7075
with self .assertRaises (TypeError ):
0 commit comments