|
101 | 101 | reveal_type, |
102 | 102 | runtime, |
103 | 103 | runtime_checkable, |
| 104 | + type_repr, |
104 | 105 | ) |
105 | 106 |
|
106 | 107 | NoneType = type(None) |
@@ -8368,6 +8369,44 @@ def test_capsule_type(self): |
8368 | 8369 | self.assertIsInstance(_datetime.datetime_CAPI, typing_extensions.CapsuleType) |
8369 | 8370 |
|
8370 | 8371 |
|
| 8372 | +class MyClass: |
| 8373 | + def __repr__(self): |
| 8374 | + return "my repr" |
| 8375 | + |
| 8376 | + |
| 8377 | +class TestTypeRepr(BaseTestCase): |
| 8378 | + def test_custom_types(self): |
| 8379 | + |
| 8380 | + class Nested: |
| 8381 | + pass |
| 8382 | + |
| 8383 | + def nested(): |
| 8384 | + pass |
| 8385 | + |
| 8386 | + self.assertEqual(type_repr(MyClass), f"{__name__}.MyClass") |
| 8387 | + self.assertEqual( |
| 8388 | + type_repr(Nested), |
| 8389 | + f"{__name__}.TestTypeRepr.test_custom_types.<locals>.Nested", |
| 8390 | + ) |
| 8391 | + self.assertEqual( |
| 8392 | + type_repr(nested), |
| 8393 | + f"{__name__}.TestTypeRepr.test_custom_types.<locals>.nested", |
| 8394 | + ) |
| 8395 | + self.assertEqual(type_repr(times_three), f"{__name__}.times_three") |
| 8396 | + self.assertEqual(type_repr(Format.VALUE), repr(Format.VALUE)) |
| 8397 | + self.assertEqual(type_repr(MyClass()), "my repr") |
| 8398 | + |
| 8399 | + def test_builtin_types(self): |
| 8400 | + self.assertEqual(type_repr(int), "int") |
| 8401 | + self.assertEqual(type_repr(object), "object") |
| 8402 | + self.assertEqual(type_repr(None), "None") |
| 8403 | + self.assertEqual(type_repr(len), "len") |
| 8404 | + self.assertEqual(type_repr(1), "1") |
| 8405 | + self.assertEqual(type_repr("1"), "'1'") |
| 8406 | + self.assertEqual(type_repr(''), "''") |
| 8407 | + self.assertEqual(type_repr(...), "...") |
| 8408 | + |
| 8409 | + |
8371 | 8410 | def times_three(fn): |
8372 | 8411 | @functools.wraps(fn) |
8373 | 8412 | def wrapper(a, b): |
|
0 commit comments