Adds django@4.0 support (#786)

* Adds django@4.0 support

* Fixes CI

* Fixes CI

* Ignore new error for django4.0

* Fixes
This commit is contained in:
Nikita Sobolev
2021-12-16 21:51:46 +03:00
committed by GitHub
parent e9b328a935
commit b50a9077f8
4 changed files with 17 additions and 10 deletions

View File

@@ -52,8 +52,13 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.6', '3.7', '3.8', '3.9']
django-version: ['2.2', '3.0']
python-version: ['3.8', '3.9', '3.10']
django-version: ['3.2', '4.0']
include:
- python-version: '3.7'
django-version: '2.2'
- python-version: '3.6'
django-version: '2.2'
steps:
- uses: actions/checkout@v2
- name: Setup system dependencies

View File

@@ -20,7 +20,7 @@ class ServerHandler(simple_server.ServerHandler):
class WSGIRequestHandler(simple_server.WSGIRequestHandler):
close_connection: bool
connection: WSGIRequest
connection: WSGIRequest # type: ignore[assignment]
request: WSGIRequest
rfile: BytesIO
wfile: BytesIO

View File

@@ -111,6 +111,7 @@ IGNORED_ERRORS = {
"Unsupported dynamic base class",
'error: "HttpResponse" has no attribute "streaming_content"',
'error: "HttpResponse" has no attribute "context_data"',
'Duplicate module named "apps"',
],
"admin_checks": ['Argument 1 to "append" of "list" has incompatible type "str"; expected "CheckMessage"'],
"admin_default_site": [
@@ -514,7 +515,7 @@ IGNORED_ERRORS = {
def check_if_custom_ignores_are_covered_by_common() -> None:
from scripts.typecheck_tests import is_pattern_fits
from scripts.typecheck_tests import does_pattern_fit
common_ignore_patterns = IGNORED_ERRORS["__common__"]
for module_name, patterns in IGNORED_ERRORS.items():
@@ -522,7 +523,7 @@ def check_if_custom_ignores_are_covered_by_common() -> None:
continue
for pattern in patterns:
for common_pattern in common_ignore_patterns:
if isinstance(pattern, str) and is_pattern_fits(common_pattern, pattern):
if isinstance(pattern, str) and does_pattern_fit(common_pattern, pattern):
print(f'pattern "{module_name}: {pattern!r}" is covered by pattern {common_pattern!r}')

View File

@@ -11,9 +11,10 @@ from scripts.enabled_test_modules import EXTERNAL_MODULES, IGNORED_ERRORS, IGNOR
from scripts.git_helpers import checkout_django_branch
from scripts.paths import DJANGO_SOURCE_DIRECTORY, PROJECT_DIRECTORY
DJANGO_COMMIT_REFS: Dict[str, str] = {
DJANGO_COMMIT_REFS = {
"2.2": "8093aaa8ff9dd7386a069c6eb49fcc1c5980c033",
"3.0": "44da7abda848f05caaed74f6a749038c87dedfda",
"3.2": "0153a63a674937e4a56d9d5e4ca2d629b011fbde",
"4.0": "67d0c4644acfd7707be4a31e8976f865509b09ac",
}
@@ -28,7 +29,7 @@ def get_unused_ignores(ignored_message_freq: Dict[str, Dict[Union[str, Pattern],
return unused_ignores
def is_pattern_fits(pattern: Union[Pattern, str], line: str):
def does_pattern_fit(pattern: Union[Pattern, str], line: str):
if isinstance(pattern, Pattern):
if pattern.search(line):
return True
@@ -46,12 +47,12 @@ def is_ignored(line: str, test_folder_name: str, *, ignored_message_freqs: Dict[
return True
for pattern in IGNORED_ERRORS.get(test_folder_name, []):
if is_pattern_fits(pattern, line):
if does_pattern_fit(pattern, line):
ignored_message_freqs[test_folder_name][pattern] += 1
return True
for pattern in IGNORED_ERRORS["__common__"]:
if is_pattern_fits(pattern, line):
if does_pattern_fit(pattern, line):
ignored_message_freqs["__common__"][pattern] += 1
return True