def test___type_params__(self):
def generic[T](): pass
def not_generic(): pass
+ lambda_ = lambda: ...
T, = generic.__type_params__
self.assertIsInstance(T, typing.TypeVar)
self.assertEqual(generic.__type_params__, (T,))
- self.assertEqual(not_generic.__type_params__, ())
- with self.assertRaises(TypeError):
- del not_generic.__type_params__
- with self.assertRaises(TypeError):
- not_generic.__type_params__ = 42
- not_generic.__type_params__ = (T,)
- self.assertEqual(not_generic.__type_params__, (T,))
+ for func in (not_generic, lambda_):
+ with self.subTest(func=func):
+ self.assertEqual(func.__type_params__, ())
+ with self.assertRaises(TypeError):
+ del func.__type_params__
+ with self.assertRaises(TypeError):
+ func.__type_params__ = 42
+ func.__type_params__ = (T,)
+ self.assertEqual(func.__type_params__, (T,))
def test___code__(self):
num_one, num_two = 7, 8