(self)
| 2548 | self.assertEqual(repr(C2[int, str]), f"{fullname}[[int, str], int]") |
| 2549 | |
| 2550 | def test_concatenate(self): |
| 2551 | Callable = self.Callable |
| 2552 | fullname = f"{Callable.__module__}.Callable" |
| 2553 | T = TypeVar('T') |
| 2554 | P = ParamSpec('P') |
| 2555 | P2 = ParamSpec('P2') |
| 2556 | C = Callable[Concatenate[int, P], T] |
| 2557 | self.assertEqual(repr(C), |
| 2558 | f"{fullname}[typing.Concatenate[int, ~P], ~T]") |
| 2559 | self.assertEqual(C[P2, int], Callable[Concatenate[int, P2], int]) |
| 2560 | self.assertEqual(C[[str, float], int], Callable[[int, str, float], int]) |
| 2561 | self.assertEqual(C[[], int], Callable[[int], int]) |
| 2562 | self.assertEqual(C[Concatenate[str, P2], int], |
| 2563 | Callable[Concatenate[int, str, P2], int]) |
| 2564 | self.assertEqual(C[..., int], Callable[Concatenate[int, ...], int]) |
| 2565 | |
| 2566 | C = Callable[Concatenate[int, P], int] |
| 2567 | self.assertEqual(repr(C), |
| 2568 | f"{fullname}[typing.Concatenate[int, ~P], int]") |
| 2569 | self.assertEqual(C[P2], Callable[Concatenate[int, P2], int]) |
| 2570 | self.assertEqual(C[[str, float]], Callable[[int, str, float], int]) |
| 2571 | self.assertEqual(C[str, float], Callable[[int, str, float], int]) |
| 2572 | self.assertEqual(C[[]], Callable[[int], int]) |
| 2573 | self.assertEqual(C[Concatenate[str, P2]], |
| 2574 | Callable[Concatenate[int, str, P2], int]) |
| 2575 | self.assertEqual(C[...], Callable[Concatenate[int, ...], int]) |
| 2576 | |
| 2577 | def test_nested_paramspec(self): |
| 2578 | # Since Callable has some special treatment, we want to be sure |
nothing calls this directly
no test coverage detected