@@ -210,7 +210,13 @@ def test(*args: Any, **kwargs: Any) -> None:
210210 )
211211
212212 actual_errors = set (output .splitlines ())
213- assert actual_errors == expected_errors , output
213+ if actual_errors != expected_errors :
214+ output = run_stubtest (
215+ stub = "\n \n " .join (textwrap .dedent (c .stub .lstrip ("\n " )) for c in cases ),
216+ runtime = "\n \n " .join (textwrap .dedent (c .runtime .lstrip ("\n " )) for c in cases ),
217+ options = [],
218+ )
219+ assert actual_errors == expected_errors , output
214220
215221 return test
216222
@@ -660,6 +666,56 @@ def f6(self, x, /): pass
660666 """ ,
661667 error = None ,
662668 )
669+ yield Case (
670+ stub = """
671+ @overload
672+ def f7(a: int, /) -> int: ...
673+ @overload
674+ def f7(b: str, /) -> str: ...
675+ """ ,
676+ runtime = "def f7(x, /): pass" ,
677+ error = None ,
678+ )
679+ yield Case (
680+ stub = """
681+ @overload
682+ def f8(a: int, c: int = 0, /) -> int: ...
683+ @overload
684+ def f8(b: str, d: int, /) -> str: ...
685+ """ ,
686+ runtime = "def f8(x, y, /): pass" ,
687+ error = "f8" ,
688+ )
689+ yield Case (
690+ stub = """
691+ @overload
692+ def f9(a: int, c: int = 0, /) -> int: ...
693+ @overload
694+ def f9(b: str, d: int, /) -> str: ...
695+ """ ,
696+ runtime = "def f9(x, y=0, /): pass" ,
697+ error = None ,
698+ )
699+ yield Case (
700+ stub = """
701+ class Bar:
702+ @overload
703+ def f1(self) -> int: ...
704+ @overload
705+ def f1(self, a: int, /) -> int: ...
706+
707+ @overload
708+ def f2(self, a: int, /) -> int: ...
709+ @overload
710+ def f2(self, a: str, /) -> int: ...
711+ """ ,
712+ runtime = """
713+ class Bar:
714+ def f1(self, *a) -> int: ...
715+ def f2(self, *a) -> int: ...
716+ """ ,
717+ error = None ,
718+ )
663719
664720 @collect_cases
665721 def test_property (self ) -> Iterator [Case ]:
0 commit comments