Skip to content

Commit 6d883cd

Browse files
authored
fix: Fix override_settings decorator typing (#1322)
1 parent 1c482dc commit 6d883cd

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

django-stubs/test/utils.pyi

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ from typing_extensions import SupportsIndex, TypeAlias
2121
_TestClass: TypeAlias = type[SimpleTestCase]
2222

2323
_DecoratedTest: TypeAlias = Callable | _TestClass
24+
_DT = TypeVar("_DT", bound=_DecoratedTest)
2425
_C = TypeVar("_C", bound=Callable) # Any callable
2526

2627
TZ_SUPPORT: bool
@@ -57,7 +58,7 @@ class TestContextDecorator:
5758
) -> None: ...
5859
def decorate_class(self, cls: _TestClass) -> _TestClass: ...
5960
def decorate_callable(self, func: _C) -> _C: ...
60-
def __call__(self, decorated: _DecoratedTest) -> Any: ...
61+
def __call__(self, decorated: _DT) -> _DT: ...
6162

6263
class override_settings(TestContextDecorator):
6364
options: dict[str, Any]

tests/typecheck/test/test_utils.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
- case: override_settings
2+
main: |
3+
from django.test import override_settings
4+
from django.conf import settings
5+
@override_settings(FOO='bar')
6+
def test() -> None:
7+
pass
8+
reveal_type(test) # N: Revealed type is "def ()"

0 commit comments

Comments
 (0)