Skip to content

Commit 1ec21b5

Browse files
committed
split test into separate isolated test cases
1 parent f3067fd commit 1ec21b5

1 file changed

Lines changed: 84 additions & 5 deletions

File tree

test-data/unit/check-expressions.test

Lines changed: 84 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2583,7 +2583,7 @@ def last_known_value() -> None:
25832583
reveal_type(z) # N: Revealed type is "builtins.str"
25842584
[builtins fixtures/primitives.pyi]
25852585

2586-
[case testInvalidArgumentInOverloadError]
2586+
[case testOverloadUnexpectedKeywordArgWithTypoSuggestion]
25872587
from typing import overload, Union
25882588

25892589
@overload
@@ -2595,47 +2595,126 @@ def f(foobar: str) -> None: ...
25952595
def f(foobar: Union[int, str]) -> None: pass
25962596

25972597
f(fobar=1) # E: Unexpected keyword argument "fobar" for overloaded function "f"; did you mean "foobar"?
2598+
[builtins fixtures/list.pyi]
2599+
2600+
[case testOverloadUnexpectedKeywordArgNoMatch]
2601+
from typing import overload, Union
2602+
2603+
@overload
2604+
def f(foobar: int) -> None: ...
2605+
2606+
@overload
2607+
def f(foobar: str) -> None: ...
2608+
2609+
def f(foobar: Union[int, str]) -> None: pass
2610+
25982611
f(random=[1,2,3]) # E: Unexpected keyword argument "random" for overloaded function "f" \
25992612
# N: Possible overload variants: \
26002613
# N: def f(foobar: int) -> None \
26012614
# N: def f(foobar: str) -> None \
26022615
# E: No overload variant of "f" matches argument type "list[int]"
2616+
[builtins fixtures/list.pyi]
2617+
2618+
[case testOverloadMultipleUnexpectedKeywordArgs]
2619+
from typing import overload, Union
2620+
2621+
@overload
2622+
def f(foobar: int) -> None: ...
2623+
2624+
@overload
2625+
def f(foobar: str) -> None: ...
2626+
2627+
def f(foobar: Union[int, str]) -> None: pass
26032628

26042629
f(fobar=1, baz=2) # E: Unexpected keyword argument "fobar" for overloaded function "f"; did you mean "foobar"? \
26052630
# E: Unexpected keyword argument "baz" for overloaded function "f"
2631+
[builtins fixtures/list.pyi]
2632+
2633+
[case testOverloadManyUnexpectedKeywordArgs]
2634+
from typing import overload, Union
2635+
2636+
@overload
2637+
def f(foobar: int) -> None: ...
2638+
2639+
@overload
2640+
def f(foobar: str) -> None: ...
2641+
2642+
def f(foobar: Union[int, str]) -> None: pass
26062643

26072644
f(foobar=1, a=2, b=3, c=4, d=5, e=6) # E: Unexpected keyword arguments "a", "b", "c", "d", "e" for overloaded function "f" \
26082645
# E: No overload variant of "f" matches argument types "int", "int", "int", "int", "int", "int" \
26092646
# N: Possible overload variants: \
26102647
# N: def f(foobar: int) -> None \
26112648
# N: def f(foobar: str) -> None
2649+
[builtins fixtures/list.pyi]
2650+
2651+
[case testOverloadUnexpectedKeywordArgsWithTypeMismatch]
2652+
from typing import overload, Union
26122653

26132654
@overload
2614-
def g(x: int, y: int) -> int: ...
2655+
def f(foobar: int) -> None: ...
26152656

26162657
@overload
2617-
def g(x: str, y: str) -> str: ...
2658+
def f(foobar: str) -> None: ...
26182659

2619-
def g(x: Union[int, str], y: Union[int, str]) -> Union[int, str]:
2620-
return x
2660+
def f(foobar: Union[int, str]) -> None: pass
26212661

26222662
f(fobar=1, other=[1,2,3]) # E: Unexpected keyword argument "fobar" for overloaded function "f"; did you mean "foobar"? \
26232663
# E: Unexpected keyword argument "other" for overloaded function "f" \
26242664
# N: Possible overload variants: \
26252665
# N: def f(foobar: int) -> None \
26262666
# N: def f(foobar: str) -> None \
26272667
# E: No overload variant of "f" matches argument types "int", "list[int]"
2668+
[builtins fixtures/list.pyi]
2669+
2670+
[case testOverloadPositionalArgTypeMismatch]
2671+
from typing import overload, Union
2672+
2673+
@overload
2674+
def g(x: int, y: int) -> int: ...
2675+
2676+
@overload
2677+
def g(x: str, y: str) -> str: ...
2678+
2679+
def g(x: Union[int, str], y: Union[int, str]) -> Union[int, str]:
2680+
return x
26282681

26292682
g([1, 2], 3) # E: No overload variant of "g" matches argument types "list[int]", "int" \
26302683
# N: Possible overload variants: \
26312684
# N: def g(x: int, y: int) -> int \
26322685
# N: def g(x: str, y: str) -> str
2686+
[builtins fixtures/list.pyi]
2687+
2688+
[case testOverloadUnexpectedKeywordWithPositionalMismatch]
2689+
from typing import overload, Union
2690+
2691+
@overload
2692+
def g(x: int, y: int) -> int: ...
2693+
2694+
@overload
2695+
def g(x: str, y: str) -> str: ...
2696+
2697+
def g(x: Union[int, str], y: Union[int, str]) -> Union[int, str]:
2698+
return x
26332699

26342700
g([1, 2], z=3) # E: Unexpected keyword argument "z" for overloaded function "g" \
26352701
# E: No overload variant of "g" matches argument types "list[int]", "int" \
26362702
# N: Possible overload variants: \
26372703
# N: def g(x: int, y: int) -> int \
26382704
# N: def g(x: str, y: str) -> str
2705+
[builtins fixtures/list.pyi]
2706+
2707+
[case testOverloadNamedArgTypeMismatch]
2708+
from typing import overload, Union
2709+
2710+
@overload
2711+
def g(x: int, y: int) -> int: ...
2712+
2713+
@overload
2714+
def g(x: str, y: str) -> str: ...
2715+
2716+
def g(x: Union[int, str], y: Union[int, str]) -> Union[int, str]:
2717+
return x
26392718

26402719
g(x="hello", y=1) # E: No overload variant of "g" matches argument types "str", "int" \
26412720
# N: Possible overload variants: \

0 commit comments

Comments
 (0)