|
6 | 6 | @login_required |
7 | 7 | def view_func(request: HttpRequest) -> HttpResponse: ... |
8 | 8 | reveal_type(view_func) # N: Revealed type is "def (request: django.http.request.HttpRequest) -> django.http.response.HttpResponse" |
| 9 | +- case: login_required_bare_async |
| 10 | + main: | |
| 11 | + from typing import Any |
| 12 | + from django.contrib.auth.decorators import login_required |
| 13 | + from django.http import HttpRequest, HttpResponse |
| 14 | + @login_required |
| 15 | + async def view_func(request: HttpRequest) -> HttpResponse: ... |
| 16 | + reveal_type(view_func) # N: Revealed type is "def (request: django.http.request.HttpRequest) -> typing.Coroutine[Any, Any, django.http.response.HttpResponse]" |
9 | 17 | - case: login_required_fancy |
10 | 18 | main: | |
11 | 19 | from django.contrib.auth.decorators import login_required |
|
14 | 22 | @login_required(redirect_field_name='a', login_url='b') |
15 | 23 | def view_func(request: WSGIRequest, arg: str) -> HttpResponse: ... |
16 | 24 | reveal_type(view_func) # N: Revealed type is "def (request: django.core.handlers.wsgi.WSGIRequest, arg: builtins.str) -> django.http.response.HttpResponse" |
| 25 | +- case: login_required_fancy_async |
| 26 | + main: | |
| 27 | + from django.contrib.auth.decorators import login_required |
| 28 | + from django.core.handlers.asgi import ASGIRequest |
| 29 | + from django.http import HttpResponse |
| 30 | + @login_required(redirect_field_name='a', login_url='b') |
| 31 | + async def view_func(request: ASGIRequest, arg: str) -> HttpResponse: ... |
| 32 | + reveal_type(view_func) # N: Revealed type is "def (request: django.core.handlers.asgi.ASGIRequest, arg: builtins.str) -> typing.Coroutine[Any, Any, django.http.response.HttpResponse]" |
17 | 33 | - case: login_required_weird |
18 | 34 | main: | |
19 | 35 | from django.contrib.auth.decorators import login_required |
|
35 | 51 | @user_passes_test(lambda u: u.get_username().startswith('super')) |
36 | 52 | def view_func(request: HttpRequest) -> HttpResponse: ... |
37 | 53 | reveal_type(view_func) # N: Revealed type is "def (request: django.http.request.HttpRequest) -> django.http.response.HttpResponse" |
| 54 | +- case: user_passes_test_async |
| 55 | + main: | |
| 56 | + from django.contrib.auth.decorators import user_passes_test |
| 57 | + from django.http import HttpRequest, HttpResponse |
| 58 | + @user_passes_test(lambda u: u.get_username().startswith('super')) |
| 59 | + async def view_func(request: HttpRequest) -> HttpResponse: ... |
| 60 | + reveal_type(view_func) # N: Revealed type is "def (request: django.http.request.HttpRequest) -> typing.Coroutine[Any, Any, django.http.response.HttpResponse]" |
38 | 61 | - case: user_passes_test_bare_is_error |
39 | 62 | main: | |
40 | 63 | from django.http import HttpRequest, HttpResponse |
|
47 | 70 | from django.http import HttpRequest, HttpResponse |
48 | 71 | @permission_required('polls.can_vote') |
49 | 72 | def view_func(request: HttpRequest) -> HttpResponse: ... |
| 73 | + reveal_type(view_func) # N: Revealed type is "def (request: django.http.request.HttpRequest) -> django.http.response.HttpResponse" |
| 74 | +- case: permission_required_async |
| 75 | + main: | |
| 76 | + from django.contrib.auth.decorators import permission_required |
| 77 | + from django.http import HttpRequest, HttpResponse |
| 78 | + @permission_required('polls.can_vote') |
| 79 | + async def view_func(request: HttpRequest) -> HttpResponse: ... |
| 80 | + reveal_type(view_func) # N: Revealed type is "def (request: django.http.request.HttpRequest) -> typing.Coroutine[Any, Any, django.http.response.HttpResponse]" |
0 commit comments