diff --git a/stdlib/@tests/test_cases/check_turtle.py b/stdlib/@tests/test_cases/check_turtle.py new file mode 100644 index 000000000000..6be64ea5da30 --- /dev/null +++ b/stdlib/@tests/test_cases/check_turtle.py @@ -0,0 +1,35 @@ +from turtle import Turtle, dot + +Turtle().dot() +Turtle().dot(10) +Turtle().dot(size=10) +Turtle().dot((0, 0, 0)) +Turtle().dot(size=(0, 0, 0)) +Turtle().dot("blue") +Turtle().dot("") +Turtle().dot(size="blue") +Turtle().dot(20, "blue") +Turtle().dot(20, "blue") +Turtle().dot(20, (0, 0, 0)) +Turtle().dot(20, 0, 0, 0) + +Turtle().dot(size=10, color="blue") # type: ignore +Turtle().dot(10, color="blue") # type: ignore +Turtle().dot(color="blue") # type: ignore + +dot() +dot(10) +dot(size=10) +dot((0, 0, 0)) +dot(size=(0, 0, 0)) +dot("blue") +dot("") +dot(size="blue") +dot(20, "blue") +dot(20, "blue") +dot(20, (0, 0, 0)) +dot(20, 0, 0, 0) + +dot(size=10, color="blue") # type: ignore +dot(10, color="blue") # type: ignore +dot(color="blue") # type: ignore diff --git a/stdlib/turtle.pyi b/stdlib/turtle.pyi index 0b93429904c5..39a995de2612 100644 --- a/stdlib/turtle.pyi +++ b/stdlib/turtle.pyi @@ -463,7 +463,12 @@ class RawTurtle(TPen, TNavigator): # type: ignore[misc] # Conflicting methods def begin_fill(self) -> None: ... def end_fill(self) -> None: ... - def dot(self, size: int | None = None, *color: _Color) -> None: ... + @overload + def dot(self, size: int | _Color | None = None) -> None: ... + @overload + def dot(self, size: int | None, color: _Color, /) -> None: ... + @overload + def dot(self, size: int | None, r: float, g: float, b: float, /) -> None: ... def write( self, arg: object, move: bool = False, align: str = "left", font: tuple[str, int, str] = ("Arial", 8, "normal") ) -> None: ... @@ -747,7 +752,12 @@ if sys.version_info >= (3, 14): def begin_fill() -> None: ... def end_fill() -> None: ... -def dot(size: int | None = None, *color: _Color) -> None: ... +@overload +def dot(size: int | _Color | None = None) -> None: ... +@overload +def dot(size: int | None, color: _Color, /) -> None: ... +@overload +def dot(size: int | None, r: float, g: float, b: float, /) -> None: ... def write(arg: object, move: bool = False, align: str = "left", font: tuple[str, int, str] = ("Arial", 8, "normal")) -> None: ... if sys.version_info >= (3, 14):