MCPcopy Index your code
hub / github.com/RustPython/RustPython / test_paramspec

Method test_paramspec

Lib/test/test_typing.py:2516–2548  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

2514 self.assertEqual(a().__orig_class__, C1[[int], T])
2515
2516 def test_paramspec(self):
2517 Callable = self.Callable
2518 fullname = f"{Callable.__module__}.Callable"
2519 P = ParamSpec('P')
2520 P2 = ParamSpec('P2')
2521 C1 = Callable[P, T]
2522 # substitution
2523 self.assertEqual(C1[[int], str], Callable[[int], str])
2524 self.assertEqual(C1[[int, str], str], Callable[[int, str], str])
2525 self.assertEqual(C1[[], str], Callable[[], str])
2526 self.assertEqual(C1[..., str], Callable[..., str])
2527 self.assertEqual(C1[P2, str], Callable[P2, str])
2528 self.assertEqual(C1[Concatenate[int, P2], str],
2529 Callable[Concatenate[int, P2], str])
2530 self.assertEqual(repr(C1), f"{fullname}[~P, ~T]")
2531 self.assertEqual(repr(C1[[int, str], str]), f"{fullname}[[int, str], str]")
2532 with self.assertRaises(TypeError):
2533 C1[int, str]
2534
2535 C2 = Callable[P, int]
2536 self.assertEqual(C2[[int]], Callable[[int], int])
2537 self.assertEqual(C2[[int, str]], Callable[[int, str], int])
2538 self.assertEqual(C2[[]], Callable[[], int])
2539 self.assertEqual(C2[...], Callable[..., int])
2540 self.assertEqual(C2[P2], Callable[P2, int])
2541 self.assertEqual(C2[Concatenate[int, P2]],
2542 Callable[Concatenate[int, P2], int])
2543 # special case in PEP 612 where
2544 # X[int, str, float] == X[[int, str, float]]
2545 self.assertEqual(C2[int], Callable[[int], int])
2546 self.assertEqual(C2[int, str], Callable[[int, str], int])
2547 self.assertEqual(repr(C2), f"{fullname}[~P, int]")
2548 self.assertEqual(repr(C2[int, str]), f"{fullname}[[int, str], int]")
2549
2550 def test_concatenate(self):
2551 Callable = self.Callable

Callers

nothing calls this directly

Calls 4

ParamSpecClass · 0.85
reprFunction · 0.85
assertEqualMethod · 0.45
assertRaisesMethod · 0.45

Tested by

no test coverage detected