enable 6 more test folders

This commit is contained in:
Maxim Kurnikov
2019-02-06 14:29:42 +03:00
parent c534e75aaf
commit d18fc0bf5f
18 changed files with 98 additions and 102 deletions

View File

@@ -1,4 +1,4 @@
from typing import Any, Callable, Optional from typing import Any, Callable, Dict, List
from django.template.base import Parser, Token from django.template.base import Parser, Token
from django.template.context import Context from django.template.context import Context

View File

@@ -32,9 +32,7 @@ class LoginView(SuccessURLAllowedHostsMixin, FormView):
def get_form_class(self) -> Type[AuthenticationForm]: ... def get_form_class(self) -> Type[AuthenticationForm]: ...
def get_form_kwargs(self) -> Dict[str, Optional[Union[Dict[str, str], HttpRequest, MultiValueDict]]]: ... def get_form_kwargs(self) -> Dict[str, Optional[Union[Dict[str, str], HttpRequest, MultiValueDict]]]: ...
def form_valid(self, form: AuthenticationForm) -> HttpResponseRedirect: ... def form_valid(self, form: AuthenticationForm) -> HttpResponseRedirect: ...
def get_context_data( def get_context_data(self, **kwargs: Any) -> Dict[str, Any]: ...
self, **kwargs: Any
) -> Dict[str, Union[AuthenticationForm, LoginView, Site, RequestSite, str]]: ...
class LogoutView(SuccessURLAllowedHostsMixin, TemplateView): class LogoutView(SuccessURLAllowedHostsMixin, TemplateView):
next_page: Any = ... next_page: Any = ...

View File

@@ -23,5 +23,5 @@ class Feed:
def feed_extra_kwargs(self, obj: None) -> Dict[Any, Any]: ... def feed_extra_kwargs(self, obj: None) -> Dict[Any, Any]: ...
def item_extra_kwargs(self, item: Model) -> Dict[Any, Any]: ... def item_extra_kwargs(self, item: Model) -> Dict[Any, Any]: ...
def get_object(self, request: WSGIRequest, *args: Any, **kwargs: Any) -> None: ... def get_object(self, request: WSGIRequest, *args: Any, **kwargs: Any) -> None: ...
def get_context_data(self, **kwargs: Any) -> Dict[str, Model]: ... def get_context_data(self, **kwargs: Any) -> Dict[str, Any]: ...
def get_feed(self, obj: None, request: WSGIRequest) -> SyndicationFeed: ... def get_feed(self, obj: None, request: WSGIRequest) -> SyndicationFeed: ...

View File

@@ -3,7 +3,8 @@ from io import BytesIO
from typing import Any, Dict from typing import Any, Dict
from wsgiref import simple_server from wsgiref import simple_server
from django.core.handlers.wsgi import WSGIRequest from django.core.handlers.wsgi import WSGIRequest, WSGIHandler
from django.core.wsgi import get_wsgi_application as get_wsgi_application
class WSGIServer(simple_server.WSGIServer): class WSGIServer(simple_server.WSGIServer):
request_queue_size: int = ... request_queue_size: int = ...
@@ -31,3 +32,5 @@ class WSGIRequestHandler(simple_server.WSGIRequestHandler):
requestline: str = ... requestline: str = ...
request_version: str = ... request_version: str = ...
def handle(self) -> None: ... def handle(self) -> None: ...
def get_internal_wsgi_application() -> WSGIHandler: ...

View File

@@ -1,5 +1,5 @@
from datetime import datetime from datetime import datetime, timedelta
from typing import Any, Dict, List, Optional, Type, Union from typing import Any, Dict, List, Optional, Type, Union, Protocol
from django.contrib.sessions.serializers import PickleSerializer from django.contrib.sessions.serializers import PickleSerializer
@@ -11,38 +11,30 @@ def b64_decode(s: bytes) -> bytes: ...
def base64_hmac(salt: str, value: Union[bytes, str], key: Union[bytes, str]) -> str: ... def base64_hmac(salt: str, value: Union[bytes, str], key: Union[bytes, str]) -> str: ...
def get_cookie_signer(salt: str = ...) -> TimestampSigner: ... def get_cookie_signer(salt: str = ...) -> TimestampSigner: ...
class Serializer(Protocol):
def dumps(self, obj: Any) -> bytes: ...
def loads(self, data: bytes) -> Any: ...
class JSONSerializer: class JSONSerializer:
def dumps(self, obj: Union[Dict[str, Union[int, str]], List[str], str]) -> bytes: ... def dumps(self, obj: Any) -> bytes: ...
def loads(self, data: bytes) -> Dict[str, Union[int, str]]: ... def loads(self, data: bytes) -> Dict[str, Union[int, str]]: ...
def dumps( def dumps(
obj: Union[Dict[str, Union[datetime, str]], List[str], str], obj: Any, key: None = ..., salt: str = ..., serializer: Type[Serializer] = ..., compress: bool = ...
key: None = ...,
salt: str = ...,
serializer: Type[Union[PickleSerializer, JSONSerializer]] = ...,
compress: bool = ...,
) -> str: ... ) -> str: ...
def loads( def loads(
s: str, s: str, key: None = ..., salt: str = ..., serializer: Type[Serializer] = ..., max_age: Optional[int] = ...
key: None = ..., ) -> Any: ...
salt: str = ...,
serializer: Type[Union[PickleSerializer, JSONSerializer]] = ...,
max_age: Optional[int] = ...,
) -> Union[Dict[str, Union[datetime, str]], Dict[str, Union[int, str]], List[str], str]: ...
class Signer: class Signer:
key: str = ... key: str = ...
sep: str = ... sep: str = ...
salt: Any = ... salt: str = ...
def __init__(self, key: Optional[Union[bytes, str]] = ..., sep: str = ..., salt: Optional[str] = ...) -> None: ... def __init__(self, key: Optional[Union[bytes, str]] = ..., sep: str = ..., salt: Optional[str] = ...) -> None: ...
def signature(self, value: Union[bytes, str]) -> str: ... def signature(self, value: Union[bytes, str]) -> str: ...
def sign(self, value: str) -> str: ... def sign(self, value: str) -> str: ...
def unsign(self, signed_value: str) -> str: ... def unsign(self, signed_value: str) -> str: ...
class TimestampSigner(Signer): class TimestampSigner(Signer):
key: str
salt: str
sep: str
def timestamp(self) -> str: ... def timestamp(self) -> str: ...
def sign(self, value: str) -> str: ... def unsign(self, value: str, max_age: Optional[Union[int, timedelta]] = ...) -> str: ...
def unsign(self, value: str, max_age: Optional[int] = ...) -> str: ...

View File

@@ -13,7 +13,7 @@ from django.urls import ResolverMatch
class BadHeaderError(ValueError): ... class BadHeaderError(ValueError): ...
class HttpResponseBase: class HttpResponseBase(Iterable[AnyStr]):
status_code: int = ... status_code: int = ...
cookies: SimpleCookie = ... cookies: SimpleCookie = ...
reason_phrase: str = ... reason_phrase: str = ...
@@ -60,7 +60,7 @@ class HttpResponseBase:
def seekable(self) -> bool: ... def seekable(self) -> bool: ...
def writable(self) -> bool: ... def writable(self) -> bool: ...
def writelines(self, lines: Iterable[object]): ... def writelines(self, lines: Iterable[object]): ...
def __iter__(self) -> Iterator[bytes]: ... def __iter__(self) -> Iterator[AnyStr]: ...
class HttpResponse(HttpResponseBase): class HttpResponse(HttpResponseBase):
client: Client client: Client

View File

@@ -1,7 +1,8 @@
from enum import Enum from enum import Enum
from typing import Any, Callable, Dict, Iterator, List, Optional, Tuple, Type, Union from typing import Any, Callable, Dict, Iterator, List, Mapping, Optional, Tuple, Type, Union
from django.template.context import Context from django.http.request import HttpRequest
from django.template.context import Context as Context
from django.template.engine import Engine from django.template.engine import Engine
from django.template.library import Library from django.template.library import Library
from django.template.loaders.base import Loader from django.template.loaders.base import Loader
@@ -58,11 +59,9 @@ class Template:
engine: Optional[Engine] = ..., engine: Optional[Engine] = ...,
) -> None: ... ) -> None: ...
def __iter__(self) -> None: ... def __iter__(self) -> None: ...
def render(self, context: Context) -> Any: ... def render(self, context: Union[Context, Dict[str, Any]], request: Optional[HttpRequest] = ...) -> Any: ...
def compile_nodelist(self) -> NodeList: ... def compile_nodelist(self) -> NodeList: ...
def get_exception_info( def get_exception_info(self, exception: Exception, token: Token) -> Dict[str, Any]: ...
self, exception: Exception, token: Token
) -> Dict[str, Union[List[Tuple[int, SafeText]], int, str]]: ...
def linebreak_iter(template_source: str) -> Iterator[int]: ... def linebreak_iter(template_source: str) -> Iterator[int]: ...
@@ -141,7 +140,7 @@ class Variable:
translate: bool = ... translate: bool = ...
message_context: Optional[str] = ... message_context: Optional[str] = ...
def __init__(self, var: Union[Dict[Any, Any], str]) -> None: ... def __init__(self, var: Union[Dict[Any, Any], str]) -> None: ...
def resolve(self, context: Union[Dict[str, Dict[str, Union[int, str]]], Context, int, str]) -> Any: ... def resolve(self, context: Union[Mapping[str, Mapping[str, Any]], Context, int, str]) -> Any: ...
class Node: class Node:
must_be_first: bool = ... must_be_first: bool = ...

View File

@@ -1,11 +1,8 @@
from datetime import _date, datetime, timedelta from datetime import date as _date, datetime, time as _time
from decimal import Decimal from typing import Any, Callable, Dict, List, Optional, Union
from typing import Any, Callable, Dict, Iterator, List, Optional, Tuple, Union
from django.utils.safestring import SafeText from django.utils.safestring import SafeText
from django.utils.html import escape as escape
from .base import Variable as Variable, VariableDoesNotExist as VariableDoesNotExist
from .library import Library as Library
register: Any register: Any
@@ -14,7 +11,7 @@ def addslashes(value: str) -> str: ...
def capfirst(value: str) -> str: ... def capfirst(value: str) -> str: ...
def escapejs_filter(value: str) -> SafeText: ... def escapejs_filter(value: str) -> SafeText: ...
def json_script(value: Dict[str, str], element_id: SafeText) -> SafeText: ... def json_script(value: Dict[str, str], element_id: SafeText) -> SafeText: ...
def floatformat(text: Optional[Union[Decimal, float, str]], arg: Union[int, str] = ...) -> str: ... def floatformat(text: Optional[Any], arg: Union[int, str] = ...) -> str: ...
def iriencode(value: str) -> str: ... def iriencode(value: str) -> str: ...
def linenumbers(value: str, autoescape: bool = ...) -> SafeText: ... def linenumbers(value: str, autoescape: bool = ...) -> SafeText: ...
def lower(value: str) -> str: ... def lower(value: str) -> str: ...
@@ -43,41 +40,20 @@ def linebreaksbr(value: str, autoescape: bool = ...) -> SafeText: ...
def safe(value: str) -> SafeText: ... def safe(value: str) -> SafeText: ...
def safeseq(value: List[str]) -> List[SafeText]: ... def safeseq(value: List[str]) -> List[SafeText]: ...
def striptags(value: str) -> str: ... def striptags(value: str) -> str: ...
def dictsort( def dictsort(value: Any, arg: Union[int, str]) -> Any: ...
value: Union[ def dictsortreversed(value: Any, arg: Union[int, str]) -> Any: ...
Dict[str, int], def first(value: Any) -> Any: ...
List[Dict[str, Dict[str, Union[int, str]]]],
List[Dict[str, str]],
List[Tuple[str, str]],
List[int],
int,
str,
],
arg: Union[int, str],
) -> Union[List[Dict[str, Dict[str, Union[int, str]]]], List[Dict[str, str]], List[Tuple[str, str]], str]: ...
def dictsortreversed(
value: Union[Dict[str, int], List[Dict[str, Union[int, str]]], List[Tuple[str, str]], List[int], int, str],
arg: Union[int, str],
) -> Union[List[Dict[str, Union[int, str]]], List[Tuple[str, str]], str]: ...
def first(value: Union[List[int], List[str], str]) -> Union[int, str]: ...
def join(value: Any, arg: str, autoescape: bool = ...) -> Any: ... def join(value: Any, arg: str, autoescape: bool = ...) -> Any: ...
def last(value: List[str]) -> str: ... def last(value: List[str]) -> str: ...
def length(value: Any) -> int: ... def length(value: Any) -> int: ...
def length_is( def length_is(value: Optional[Any], arg: Union[SafeText, int]) -> Union[bool, str]: ...
value: Optional[Union[List[Callable], Tuple[str, str], int, str]], arg: Union[SafeText, int]
) -> Union[bool, str]: ...
def random(value: List[str]) -> str: ... def random(value: List[str]) -> str: ...
def slice_filter(value: Any, arg: str) -> Any: ... def slice_filter(value: Any, arg: str) -> Any: ...
def unordered_list( def unordered_list(value: Any, autoescape: bool = ...) -> Any: ...
value: Union[Iterator[Any], List[Union[List[Union[List[Union[List[str], str]], str]], str]]], autoescape: bool = ... def add(value: Any, arg: Any) -> Any: ...
) -> SafeText: ... def get_digit(value: Any, arg: int) -> Any: ...
def add(
value: Union[List[int], Tuple[int, int], _date, int, str],
arg: Union[List[int], Tuple[int, int], timedelta, int, str],
) -> Union[List[int], Tuple[int, int, int, int], _date, int, str]: ...
def get_digit(value: Union[int, str], arg: int) -> Union[int, str]: ...
def date(value: Optional[Union[_date, datetime, str]], arg: Optional[str] = ...) -> str: ... def date(value: Optional[Union[_date, datetime, str]], arg: Optional[str] = ...) -> str: ...
def time(value: Optional[Union[datetime, str]], arg: Optional[str] = ...) -> str: ... def time(value: Optional[Union[datetime, _time, str]], arg: Optional[str] = ...) -> str: ...
def timesince_filter(value: Optional[_date], arg: Optional[_date] = ...) -> str: ... def timesince_filter(value: Optional[_date], arg: Optional[_date] = ...) -> str: ...
def timeuntil_filter(value: Optional[_date], arg: Optional[_date] = ...) -> str: ... def timeuntil_filter(value: Optional[_date], arg: Optional[_date] = ...) -> str: ...
def default(value: Optional[Union[int, str]], arg: Union[int, str]) -> Union[int, str]: ... def default(value: Optional[Union[int, str]], arg: Union[int, str]) -> Union[int, str]: ...

View File

@@ -1,9 +1,9 @@
from collections import namedtuple from collections import namedtuple
from datetime import date from datetime import date
from typing import Any, Dict, List, Optional, Tuple, Union from typing import Any, Dict, List, Optional, Sequence, Tuple, Union
from django.template.base import FilterExpression, Parser, Token from django.template.base import FilterExpression, Parser, Token
from django.template.context import RequestContext, Context from django.template.context import Context
from django.utils.safestring import SafeText from django.utils.safestring import SafeText
from .base import Node, NodeList from .base import Node, NodeList
@@ -153,9 +153,13 @@ class WidthRatioNode(Node):
class WithNode(Node): class WithNode(Node):
nodelist: NodeList = ... nodelist: NodeList = ...
extra_context: Dict[str, Union[FilterExpression, str]] = ... extra_context: Dict[str, Any] = ...
def __init__( def __init__(
self, var: Optional[str], name: Optional[str], nodelist: NodeList, extra_context: Optional[Dict[str, Any]] = ... self,
var: Optional[str],
name: Optional[str],
nodelist: Union[NodeList, Sequence[Node]],
extra_context: Optional[Dict[str, Any]] = ...,
) -> None: ... ) -> None: ...
def autoescape(parser: Parser, token: Token) -> AutoEscapeControlNode: ... def autoescape(parser: Parser, token: Token) -> AutoEscapeControlNode: ...

View File

@@ -1,4 +1,4 @@
from typing import Any, Callable, Dict, List, Optional, Tuple, Union from typing import Any, Callable, Dict, List, Optional, Tuple, Union, Sequence
from django.template.base import Origin from django.template.base import Origin
from django.template.library import Library from django.template.library import Library
@@ -7,6 +7,8 @@ from django.utils.safestring import SafeText
from .base import Template from .base import Template
_Loader = Any
class Engine: class Engine:
template_context_processors: Tuple[Callable] template_context_processors: Tuple[Callable]
template_loaders: List[Loader] template_loaders: List[Loader]
@@ -16,7 +18,7 @@ class Engine:
autoescape: bool = ... autoescape: bool = ...
context_processors: Union[List[str], Tuple[str]] = ... context_processors: Union[List[str], Tuple[str]] = ...
debug: bool = ... debug: bool = ...
loaders: Union[List[List[Union[Dict[str, str], str]]], List[Tuple[str, List[str]]], List[str]] = ... loaders: Sequence[_Loader] = ...
string_if_invalid: str = ... string_if_invalid: str = ...
file_charset: str = ... file_charset: str = ...
libraries: Dict[str, str] = ... libraries: Dict[str, str] = ...
@@ -29,7 +31,7 @@ class Engine:
app_dirs: bool = ..., app_dirs: bool = ...,
context_processors: Optional[Union[List[str], Tuple[str]]] = ..., context_processors: Optional[Union[List[str], Tuple[str]]] = ...,
debug: bool = ..., debug: bool = ...,
loaders: Optional[Union[List[List[Union[Dict[str, str], str]]], List[Tuple[str, List[str]]], List[str]]] = ..., loaders: Optional[Sequence[_Loader]] = ...,
string_if_invalid: str = ..., string_if_invalid: str = ...,
file_charset: str = ..., file_charset: str = ...,
libraries: Optional[Dict[str, str]] = ..., libraries: Optional[Dict[str, str]] = ...,
@@ -40,12 +42,8 @@ class Engine:
def get_default() -> Engine: ... def get_default() -> Engine: ...
def get_template_builtins(self, builtins: List[str]) -> List[Library]: ... def get_template_builtins(self, builtins: List[str]) -> List[Library]: ...
def get_template_libraries(self, libraries: Dict[str, str]) -> Dict[str, Library]: ... def get_template_libraries(self, libraries: Dict[str, str]) -> Dict[str, Library]: ...
def get_template_loaders( def get_template_loaders(self, template_loaders: Sequence[_Loader]) -> List[Loader]: ...
self, template_loaders: Union[List[List[Union[Dict[str, str], str]]], List[Tuple[str, List[str]]], List[str]] def find_template_loader(self, loader: _Loader) -> Loader: ...
) -> List[Loader]: ...
def find_template_loader(
self, loader: Union[List[Union[Dict[str, str], str]], Tuple[str, List[str]], str]
) -> Loader: ...
def find_template( def find_template(
self, name: str, dirs: None = ..., skip: Optional[List[Origin]] = ... self, name: str, dirs: None = ..., skip: Optional[List[Origin]] = ...
) -> Tuple[Template, Origin]: ... ) -> Tuple[Template, Origin]: ...

View File

@@ -1,10 +1,11 @@
from typing import Any, List, Optional from typing import Any, List, Optional, Dict
from django.template.base import Origin, Template from django.template.base import Origin, Template
from django.template.engine import Engine from django.template.engine import Engine
class Loader: class Loader:
engine: Any = ... engine: Any = ...
get_template_cache: Dict[str, Any] = ...
def __init__(self, engine: Engine) -> None: ... def __init__(self, engine: Engine) -> None: ...
def get_template(self, template_name: str, skip: Optional[List[Origin]] = ...) -> Template: ... def get_template(self, template_name: str, skip: Optional[List[Origin]] = ...) -> Template: ...
def get_template_sources(self, template_name: Any) -> None: ... def get_template_sources(self, template_name: Any) -> None: ...

View File

@@ -1,6 +1,7 @@
from typing import Any, Callable, Optional, Type from typing import Any, Callable, Optional, Type
from django.core.handlers.wsgi import WSGIRequest from django.core.handlers.wsgi import WSGIRequest
from django.http.request import HttpRequest
from django.http.response import HttpResponse from django.http.response import HttpResponse
class RemovedInDjango30Warning(PendingDeprecationWarning): ... class RemovedInDjango30Warning(PendingDeprecationWarning): ...
@@ -25,9 +26,9 @@ class DeprecationInstanceCheck(type):
deprecation_warning: Type[Warning] deprecation_warning: Type[Warning]
def __instancecheck__(self, instance: Any): ... def __instancecheck__(self, instance: Any): ...
GetResponseCallable = Callable[[WSGIRequest], HttpResponse] GetResponseCallable = Callable[[HttpRequest], HttpResponse]
class MiddlewareMixin: class MiddlewareMixin:
get_response: Optional[GetResponseCallable] = ... get_response: Optional[GetResponseCallable] = ...
def __init__(self, get_response: Optional[GetResponseCallable] = ...) -> None: ... def __init__(self, get_response: Optional[GetResponseCallable] = ...) -> None: ...
def __call__(self, request: WSGIRequest) -> HttpResponse: ... def __call__(self, request: HttpRequest) -> HttpResponse: ...

View File

@@ -5,7 +5,7 @@ from django import http
logger = ... # type: Any logger = ... # type: Any
class ContextMixin: class ContextMixin:
def get_context_data(self, **kwargs: object) -> Dict[str, object]: ... def get_context_data(self, **kwargs: object) -> Dict[str, Any]: ...
class View: class View:
http_method_names = ... # type: List[str] http_method_names = ... # type: List[str]

View File

@@ -18,7 +18,7 @@ class SingleObjectMixin(ContextMixin):
def get_queryset(self) -> models.query.QuerySet: ... def get_queryset(self) -> models.query.QuerySet: ...
def get_slug_field(self) -> str: ... def get_slug_field(self) -> str: ...
def get_context_object_name(self, obj: Any) -> Optional[str]: ... def get_context_object_name(self, obj: Any) -> Optional[str]: ...
def get_context_data(self, **kwargs: object) -> Dict[str, object]: ... def get_context_data(self, **kwargs: object) -> Dict[str, Any]: ...
class BaseDetailView(SingleObjectMixin, View): class BaseDetailView(SingleObjectMixin, View):
def render_to_response(self, context: Dict[str, object], **response_kwargs: object) -> HttpResponse: ... def render_to_response(self, context: Dict[str, object], **response_kwargs: object) -> HttpResponse: ...

View File

@@ -21,7 +21,7 @@ class FormMixin(ContextMixin):
def get_success_url(self) -> str: ... def get_success_url(self) -> str: ...
def form_valid(self, form: Form) -> HttpResponse: ... def form_valid(self, form: Form) -> HttpResponse: ...
def form_invalid(self, form: Form) -> HttpResponse: ... def form_invalid(self, form: Form) -> HttpResponse: ...
def get_context_data(self, **kwargs: object) -> Dict[str, object]: ... def get_context_data(self, **kwargs: object) -> Dict[str, Any]: ...
class ModelFormMixin(FormMixin, SingleObjectMixin): class ModelFormMixin(FormMixin, SingleObjectMixin):
fields = ... # type: Optional[List[str]] fields = ... # type: Optional[List[str]]
@@ -33,7 +33,7 @@ class ModelFormMixin(FormMixin, SingleObjectMixin):
class ProcessFormView(View): class ProcessFormView(View):
def render_to_response(self, context: Dict[str, object], **response_kwargs: object) -> HttpResponse: ... def render_to_response(self, context: Dict[str, object], **response_kwargs: object) -> HttpResponse: ...
def get_context_data(self, **kwargs: object) -> Dict[str, object]: ... def get_context_data(self, **kwargs: object) -> Dict[str, Any]: ...
def get_form(self, form_class: Type[Form] = None) -> Form: ... def get_form(self, form_class: Type[Form] = None) -> Form: ...
def form_valid(self, form: Form) -> HttpResponse: ... def form_valid(self, form: Form) -> HttpResponse: ...
def form_invalid(self, form: Form) -> HttpResponse: ... def form_invalid(self, form: Form) -> HttpResponse: ...

View File

@@ -29,7 +29,7 @@ class MultipleObjectMixin(ContextMixin):
def get_paginate_orphans(self) -> int: ... def get_paginate_orphans(self) -> int: ...
def get_allow_empty(self) -> bool: ... def get_allow_empty(self) -> bool: ...
def get_context_object_name(self, object_list: QuerySet) -> Optional[str]: ... def get_context_object_name(self, object_list: QuerySet) -> Optional[str]: ...
def get_context_data(self, **kwargs: object) -> Dict[str, object]: ... def get_context_data(self, **kwargs: object) -> Dict[str, Any]: ...
class BaseListView(MultipleObjectMixin, View): class BaseListView(MultipleObjectMixin, View):
object_list = ... # type: QuerySet object_list = ... # type: QuerySet

View File

@@ -35,7 +35,7 @@ IGNORED_ERRORS = {
# settings # settings
re.compile(r'Module has no attribute "[A-Z_]+"'), re.compile(r'Module has no attribute "[A-Z_]+"'),
# attributes assigned to test functions # attributes assigned to test functions
re.compile(r'"Callable\[\[(Any(, )?)*((, )?VarArg\(Any\))?((, )?KwArg\(Any\))?\], Any\]" has no attribute'), re.compile(r'"Callable\[(\[(Any(, )?)*((, )?VarArg\(Any\))?((, )?KwArg\(Any\))?\]|\.\.\.), Any\]" has no attribute'),
# assign empty tuple # assign empty tuple
re.compile(r'Incompatible types in assignment \(expression has type "Tuple\[\]", ' re.compile(r'Incompatible types in assignment \(expression has type "Tuple\[\]", '
r'variable has type "Tuple\[[A-Za-z, ]+\]"'), r'variable has type "Tuple\[[A-Za-z, ]+\]"'),
@@ -45,8 +45,9 @@ IGNORED_ERRORS = {
re.compile(r'Incompatible types in assignment \(expression has type "Callable\[\[(Any(, )?)+\], Any\]", ' re.compile(r'Incompatible types in assignment \(expression has type "Callable\[\[(Any(, )?)+\], Any\]", '
r'variable has type "Callable\['), r'variable has type "Callable\['),
# cookies private attribute # cookies private attribute
'has no attribute "_reserved"', 'full_clean" of "Model" does not return a value',
'full_clean" of "Model" does not return a value' # private members
re.compile(r'has no attribute "|\'_[a-z][a-z_]+"|\'')
], ],
'admin_changelist': [ 'admin_changelist': [
'Incompatible types in assignment (expression has type "FilteredChildAdmin", variable has type "ChildAdmin")' 'Incompatible types in assignment (expression has type "FilteredChildAdmin", variable has type "ChildAdmin")'
@@ -148,6 +149,15 @@ IGNORED_ERRORS = {
'signals': [ 'signals': [
'Argument 1 to "append" of "list" has incompatible type "Tuple[Any, Any, Any, Any]"; expected "Tuple[Any, Any, Any]"' 'Argument 1 to "append" of "list" has incompatible type "Tuple[Any, Any, Any, Any]"; expected "Tuple[Any, Any, Any]"'
], ],
'syndication_tests': [
'List or tuple expected as variable arguments'
],
'staticfiles_tests': [
'Value of type "stat_result" is not indexable',
'"setUp" undefined in superclass',
'Argument 1 to "write" of "IO" has incompatible type "bytes"; expected "str"',
'Value of type "object" is not indexable'
],
'transactions': [ 'transactions': [
'Incompatible types in assignment (expression has type "Thread", variable has type "Callable[[], Any]")' 'Incompatible types in assignment (expression has type "Thread", variable has type "Callable[[], Any]")'
], ],
@@ -169,6 +179,20 @@ IGNORED_ERRORS = {
'Incompatible types in assignment (expression has type "Tuple[Union[TestCase, TestSuite], ...]", ' 'Incompatible types in assignment (expression has type "Tuple[Union[TestCase, TestSuite], ...]", '
+ 'variable has type "TestSuite")' + 'variable has type "TestSuite")'
], ],
'template_tests': [
'Xtemplate',
re.compile(r'Argument 1 to "[a-zA-Z_]+" has incompatible type "int"; expected "str"'),
'TestObject',
'variable has type "Callable[[Any], Any]',
'template_debug',
'"yield from" can\'t be applied to',
re.compile(r'List item [0-9] has incompatible type "URLResolver"; expected "URLPattern"'),
'"WSGIRequest" has no attribute "current_app"'
],
'template_backends': [
'Incompatible import of "Jinja2" (imported name has type "Type[Jinja2]", local name has type "object")',
'TemplateStringsTests'
],
'urlpatterns': [ 'urlpatterns': [
'"object" has no attribute "__iter__"; maybe "__str__" or "__dir__"? (not iterable)', '"object" has no attribute "__iter__"; maybe "__str__" or "__dir__"? (not iterable)',
'"object" not callable' '"object" not callable'
@@ -367,18 +391,18 @@ TESTS_DIRS = [
'shortcuts', 'shortcuts',
'signals', 'signals',
'signed_cookies_tests', 'signed_cookies_tests',
# TODO: 'signing', 'signing',
# TODO: 'sitemaps_tests', # TODO: 'sitemaps_tests',
'sites_framework', 'sites_framework',
# TODO: 'sites_tests', 'sites_tests',
# TODO: 'staticfiles_tests', # TODO: 'staticfiles_tests',
'str', 'str',
'string_lookup', 'string_lookup',
'swappable_models', 'swappable_models',
# TODO: 'syndication_tests', 'syndication_tests',
# TODO: 'template_backends', 'template_backends',
'template_loader', 'template_loader',
# TODO: 'template_tests', 'template_tests',
'test_client', 'test_client',
'test_client_regress', 'test_client_regress',
'test_exceptions', 'test_exceptions',
@@ -408,7 +432,7 @@ TESTS_DIRS = [
'validators', 'validators',
'version', 'version',
'view_tests', 'view_tests',
# TODO: 'wsgi', 'wsgi',
] ]