summaryrefslogtreecommitdiff
path: root/tests/check_framework
diff options
context:
space:
mode:
authordjango-bot <ops@djangoproject.com>2022-02-03 20:24:19 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2022-02-07 20:37:05 +0100
commit9c19aff7c7561e3a82978a272ecdaad40dda5c00 (patch)
treef0506b668a013d0063e5fba3dbf4863b466713ba /tests/check_framework
parentf68fa8b45dfac545cfc4111d4e52804c86db68d3 (diff)
downloaddjango-9c19aff7c7561e3a82978a272ecdaad40dda5c00.tar.gz
Refs #33476 -- Reformatted code with Black.
Diffstat (limited to 'tests/check_framework')
-rw-r--r--tests/check_framework/apps.py6
-rw-r--r--tests/check_framework/models.py2
-rw-r--r--tests/check_framework/template_test_apps/different_tags_app/apps.py2
-rw-r--r--tests/check_framework/template_test_apps/same_tags_app_1/apps.py2
-rw-r--r--tests/check_framework/template_test_apps/same_tags_app_2/apps.py2
-rw-r--r--tests/check_framework/test_4_0_compatibility.py30
-rw-r--r--tests/check_framework/test_async_checks.py4
-rw-r--r--tests/check_framework/test_caches.py141
-rw-r--r--tests/check_framework/test_database.py30
-rw-r--r--tests/check_framework/test_files.py6
-rw-r--r--tests/check_framework/test_model_checks.py423
-rw-r--r--tests/check_framework/test_model_field_deprecation.py88
-rw-r--r--tests/check_framework/test_multi_db.py20
-rw-r--r--tests/check_framework/test_security.py182
-rw-r--r--tests/check_framework/test_templates.py159
-rw-r--r--tests/check_framework/test_translation.py111
-rw-r--r--tests/check_framework/test_urls.py239
-rw-r--r--tests/check_framework/tests.py159
-rw-r--r--tests/check_framework/urls/bad_error_handlers_invalid_path.py8
-rw-r--r--tests/check_framework/urls/bad_function_based_error_handlers.py8
-rw-r--r--tests/check_framework/urls/beginning_with_slash.py4
-rw-r--r--tests/check_framework/urls/cbv_as_view.py6
-rw-r--r--tests/check_framework/urls/contains_tuple.py2
-rw-r--r--tests/check_framework/urls/good_function_based_error_handlers.py10
-rw-r--r--tests/check_framework/urls/include_contains_tuple.py2
-rw-r--r--tests/check_framework/urls/include_with_dollar.py2
-rw-r--r--tests/check_framework/urls/name_with_colon.py2
-rw-r--r--tests/check_framework/urls/no_warnings.py13
-rw-r--r--tests/check_framework/urls/no_warnings_i18n.py2
-rw-r--r--tests/check_framework/urls/non_unique_namespaces.py19
-rw-r--r--tests/check_framework/urls/path_compatibility/beginning_with_caret.py2
-rw-r--r--tests/check_framework/urls/path_compatibility/contains_re_named_group.py2
-rw-r--r--tests/check_framework/urls/path_compatibility/ending_with_dollar.py2
-rw-r--r--tests/check_framework/urls/unique_namespaces.py30
-rw-r--r--tests/check_framework/urls/warning_in_include.py11
35 files changed, 997 insertions, 734 deletions
diff --git a/tests/check_framework/apps.py b/tests/check_framework/apps.py
index c57994f722..b78d603855 100644
--- a/tests/check_framework/apps.py
+++ b/tests/check_framework/apps.py
@@ -2,9 +2,9 @@ from django.apps import AppConfig
class CheckDefaultPKConfig(AppConfig):
- name = 'check_framework'
+ name = "check_framework"
class CheckPKConfig(AppConfig):
- name = 'check_framework'
- default_auto_field = 'django.db.models.BigAutoField'
+ name = "check_framework"
+ default_auto_field = "django.db.models.BigAutoField"
diff --git a/tests/check_framework/models.py b/tests/check_framework/models.py
index f13010cc57..d8bbedb1a7 100644
--- a/tests/check_framework/models.py
+++ b/tests/check_framework/models.py
@@ -7,7 +7,7 @@ class SimpleModel(models.Model):
manager = models.manager.Manager()
-@register('tests')
+@register("tests")
def my_check(app_configs, **kwargs):
my_check.did_run = True
return []
diff --git a/tests/check_framework/template_test_apps/different_tags_app/apps.py b/tests/check_framework/template_test_apps/different_tags_app/apps.py
index 90d54b3d50..bb6d57128c 100644
--- a/tests/check_framework/template_test_apps/different_tags_app/apps.py
+++ b/tests/check_framework/template_test_apps/different_tags_app/apps.py
@@ -2,4 +2,4 @@ from django.apps import AppConfig
class DifferentTagsAppAppConfig(AppConfig):
- name = 'check_framework.template_test_apps.different_tags_app'
+ name = "check_framework.template_test_apps.different_tags_app"
diff --git a/tests/check_framework/template_test_apps/same_tags_app_1/apps.py b/tests/check_framework/template_test_apps/same_tags_app_1/apps.py
index 44149177a0..7b82f48dc6 100644
--- a/tests/check_framework/template_test_apps/same_tags_app_1/apps.py
+++ b/tests/check_framework/template_test_apps/same_tags_app_1/apps.py
@@ -2,4 +2,4 @@ from django.apps import AppConfig
class SameTagsApp1AppConfig(AppConfig):
- name = 'check_framework.template_test_apps.same_tags_app_1'
+ name = "check_framework.template_test_apps.same_tags_app_1"
diff --git a/tests/check_framework/template_test_apps/same_tags_app_2/apps.py b/tests/check_framework/template_test_apps/same_tags_app_2/apps.py
index d90c800d1f..e94c0113a6 100644
--- a/tests/check_framework/template_test_apps/same_tags_app_2/apps.py
+++ b/tests/check_framework/template_test_apps/same_tags_app_2/apps.py
@@ -2,4 +2,4 @@ from django.apps import AppConfig
class SameTagsApp2AppConfig(AppConfig):
- name = 'check_framework.template_test_apps.same_tags_app_2'
+ name = "check_framework.template_test_apps.same_tags_app_2"
diff --git a/tests/check_framework/test_4_0_compatibility.py b/tests/check_framework/test_4_0_compatibility.py
index 9f288f252a..c0c1e5cacf 100644
--- a/tests/check_framework/test_4_0_compatibility.py
+++ b/tests/check_framework/test_4_0_compatibility.py
@@ -1,27 +1,27 @@
from django.core.checks import Error
-from django.core.checks.compatibility.django_4_0 import (
- check_csrf_trusted_origins,
-)
+from django.core.checks.compatibility.django_4_0 import check_csrf_trusted_origins
from django.test import SimpleTestCase
from django.test.utils import override_settings
class CheckCSRFTrustedOrigins(SimpleTestCase):
-
- @override_settings(CSRF_TRUSTED_ORIGINS=['example.com'])
+ @override_settings(CSRF_TRUSTED_ORIGINS=["example.com"])
def test_invalid_url(self):
- self.assertEqual(check_csrf_trusted_origins(None), [
- Error(
- 'As of Django 4.0, the values in the CSRF_TRUSTED_ORIGINS '
- 'setting must start with a scheme (usually http:// or '
- 'https://) but found example.com. See the release notes for '
- 'details.',
- id='4_0.E001',
- )
- ])
+ self.assertEqual(
+ check_csrf_trusted_origins(None),
+ [
+ Error(
+ "As of Django 4.0, the values in the CSRF_TRUSTED_ORIGINS "
+ "setting must start with a scheme (usually http:// or "
+ "https://) but found example.com. See the release notes for "
+ "details.",
+ id="4_0.E001",
+ )
+ ],
+ )
@override_settings(
- CSRF_TRUSTED_ORIGINS=['http://example.com', 'https://example.com'],
+ CSRF_TRUSTED_ORIGINS=["http://example.com", "https://example.com"],
)
def test_valid_urls(self):
self.assertEqual(check_csrf_trusted_origins(None), [])
diff --git a/tests/check_framework/test_async_checks.py b/tests/check_framework/test_async_checks.py
index fa7f840172..a054503ca8 100644
--- a/tests/check_framework/test_async_checks.py
+++ b/tests/check_framework/test_async_checks.py
@@ -6,10 +6,10 @@ from django.test import SimpleTestCase
class AsyncCheckTests(SimpleTestCase):
- @mock.patch.dict(os.environ, {'DJANGO_ALLOW_ASYNC_UNSAFE': ''})
+ @mock.patch.dict(os.environ, {"DJANGO_ALLOW_ASYNC_UNSAFE": ""})
def test_no_allowed_async_unsafe(self):
self.assertEqual(check_async_unsafe(None), [])
- @mock.patch.dict(os.environ, {'DJANGO_ALLOW_ASYNC_UNSAFE': 'true'})
+ @mock.patch.dict(os.environ, {"DJANGO_ALLOW_ASYNC_UNSAFE": "true"})
def test_allowed_async_unsafe_set(self):
self.assertEqual(check_async_unsafe(None), [E001])
diff --git a/tests/check_framework/test_caches.py b/tests/check_framework/test_caches.py
index 3b6b41d442..93d82e4164 100644
--- a/tests/check_framework/test_caches.py
+++ b/tests/check_framework/test_caches.py
@@ -2,7 +2,9 @@ import pathlib
from django.core.checks import Warning
from django.core.checks.caches import (
- E001, check_cache_location_not_exposed, check_default_cache_is_configured,
+ E001,
+ check_cache_location_not_exposed,
+ check_default_cache_is_configured,
check_file_based_cache_is_absolute,
)
from django.test import SimpleTestCase
@@ -11,13 +13,13 @@ from django.test.utils import override_settings
class CheckCacheSettingsAppDirsTest(SimpleTestCase):
VALID_CACHES_CONFIGURATION = {
- 'default': {
- 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
+ "default": {
+ "BACKEND": "django.core.cache.backends.locmem.LocMemCache",
},
}
INVALID_CACHES_CONFIGURATION = {
- 'other': {
- 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
+ "other": {
+ "BACKEND": "django.core.cache.backends.locmem.LocMemCache",
},
}
@@ -45,77 +47,89 @@ class CheckCacheLocationTest(SimpleTestCase):
@staticmethod
def get_settings(setting, cache_path, setting_path):
return {
- 'CACHES': {
- 'default': {
- 'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
- 'LOCATION': cache_path,
+ "CACHES": {
+ "default": {
+ "BACKEND": "django.core.cache.backends.filebased.FileBasedCache",
+ "LOCATION": cache_path,
},
},
- setting: [setting_path] if setting == 'STATICFILES_DIRS' else setting_path,
+ setting: [setting_path] if setting == "STATICFILES_DIRS" else setting_path,
}
def test_cache_path_matches_media_static_setting(self):
root = pathlib.Path.cwd()
- for setting in ('MEDIA_ROOT', 'STATIC_ROOT', 'STATICFILES_DIRS'):
+ for setting in ("MEDIA_ROOT", "STATIC_ROOT", "STATICFILES_DIRS"):
settings = self.get_settings(setting, root, root)
with self.subTest(setting=setting), self.settings(**settings):
- msg = self.warning_message % ('matches', setting)
- self.assertEqual(check_cache_location_not_exposed(None), [
- Warning(msg, id='caches.W002'),
- ])
+ msg = self.warning_message % ("matches", setting)
+ self.assertEqual(
+ check_cache_location_not_exposed(None),
+ [
+ Warning(msg, id="caches.W002"),
+ ],
+ )
def test_cache_path_inside_media_static_setting(self):
root = pathlib.Path.cwd()
- for setting in ('MEDIA_ROOT', 'STATIC_ROOT', 'STATICFILES_DIRS'):
- settings = self.get_settings(setting, root / 'cache', root)
+ for setting in ("MEDIA_ROOT", "STATIC_ROOT", "STATICFILES_DIRS"):
+ settings = self.get_settings(setting, root / "cache", root)
with self.subTest(setting=setting), self.settings(**settings):
- msg = self.warning_message % ('is inside', setting)
- self.assertEqual(check_cache_location_not_exposed(None), [
- Warning(msg, id='caches.W002'),
- ])
+ msg = self.warning_message % ("is inside", setting)
+ self.assertEqual(
+ check_cache_location_not_exposed(None),
+ [
+ Warning(msg, id="caches.W002"),
+ ],
+ )
def test_cache_path_contains_media_static_setting(self):
root = pathlib.Path.cwd()
- for setting in ('MEDIA_ROOT', 'STATIC_ROOT', 'STATICFILES_DIRS'):
- settings = self.get_settings(setting, root, root / 'other')
+ for setting in ("MEDIA_ROOT", "STATIC_ROOT", "STATICFILES_DIRS"):
+ settings = self.get_settings(setting, root, root / "other")
with self.subTest(setting=setting), self.settings(**settings):
- msg = self.warning_message % ('contains', setting)
- self.assertEqual(check_cache_location_not_exposed(None), [
- Warning(msg, id='caches.W002'),
- ])
+ msg = self.warning_message % ("contains", setting)
+ self.assertEqual(
+ check_cache_location_not_exposed(None),
+ [
+ Warning(msg, id="caches.W002"),
+ ],
+ )
def test_cache_path_not_conflict(self):
root = pathlib.Path.cwd()
- for setting in ('MEDIA_ROOT', 'STATIC_ROOT', 'STATICFILES_DIRS'):
- settings = self.get_settings(setting, root / 'cache', root / 'other')
+ for setting in ("MEDIA_ROOT", "STATIC_ROOT", "STATICFILES_DIRS"):
+ settings = self.get_settings(setting, root / "cache", root / "other")
with self.subTest(setting=setting), self.settings(**settings):
self.assertEqual(check_cache_location_not_exposed(None), [])
def test_staticfiles_dirs_prefix(self):
root = pathlib.Path.cwd()
tests = [
- (root, root, 'matches'),
- (root / 'cache', root, 'is inside'),
- (root, root / 'other', 'contains'),
+ (root, root, "matches"),
+ (root / "cache", root, "is inside"),
+ (root, root / "other", "contains"),
]
for cache_path, setting_path, msg in tests:
settings = self.get_settings(
- 'STATICFILES_DIRS',
+ "STATICFILES_DIRS",
cache_path,
- ('prefix', setting_path),
+ ("prefix", setting_path),
)
with self.subTest(path=setting_path), self.settings(**settings):
- msg = self.warning_message % (msg, 'STATICFILES_DIRS')
- self.assertEqual(check_cache_location_not_exposed(None), [
- Warning(msg, id='caches.W002'),
- ])
+ msg = self.warning_message % (msg, "STATICFILES_DIRS")
+ self.assertEqual(
+ check_cache_location_not_exposed(None),
+ [
+ Warning(msg, id="caches.W002"),
+ ],
+ )
def test_staticfiles_dirs_prefix_not_conflict(self):
root = pathlib.Path.cwd()
settings = self.get_settings(
- 'STATICFILES_DIRS',
- root / 'cache',
- ('prefix', root / 'other'),
+ "STATICFILES_DIRS",
+ root / "cache",
+ ("prefix", root / "other"),
)
with self.settings(**settings):
self.assertEqual(check_cache_location_not_exposed(None), [])
@@ -123,25 +137,32 @@ class CheckCacheLocationTest(SimpleTestCase):
class CheckCacheAbsolutePath(SimpleTestCase):
def test_absolute_path(self):
- with self.settings(CACHES={
- 'default': {
- 'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
- 'LOCATION': pathlib.Path.cwd() / 'cache',
- },
- }):
+ with self.settings(
+ CACHES={
+ "default": {
+ "BACKEND": "django.core.cache.backends.filebased.FileBasedCache",
+ "LOCATION": pathlib.Path.cwd() / "cache",
+ },
+ }
+ ):
self.assertEqual(check_file_based_cache_is_absolute(None), [])
def test_relative_path(self):
- with self.settings(CACHES={
- 'default': {
- 'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
- 'LOCATION': 'cache',
- },
- }):
- self.assertEqual(check_file_based_cache_is_absolute(None), [
- Warning(
- "Your 'default' cache LOCATION path is relative. Use an "
- "absolute path instead.",
- id='caches.W003',
- ),
- ])
+ with self.settings(
+ CACHES={
+ "default": {
+ "BACKEND": "django.core.cache.backends.filebased.FileBasedCache",
+ "LOCATION": "cache",
+ },
+ }
+ ):
+ self.assertEqual(
+ check_file_based_cache_is_absolute(None),
+ [
+ Warning(
+ "Your 'default' cache LOCATION path is relative. Use an "
+ "absolute path instead.",
+ id="caches.W003",
+ ),
+ ],
+ )
diff --git a/tests/check_framework/test_database.py b/tests/check_framework/test_database.py
index c9bc8866e7..8f786474f3 100644
--- a/tests/check_framework/test_database.py
+++ b/tests/check_framework/test_database.py
@@ -7,46 +7,52 @@ from django.test import TestCase
class DatabaseCheckTests(TestCase):
- databases = {'default', 'other'}
+ databases = {"default", "other"}
- @mock.patch('django.db.backends.base.validation.BaseDatabaseValidation.check')
+ @mock.patch("django.db.backends.base.validation.BaseDatabaseValidation.check")
def test_database_checks_called(self, mocked_check):
check_database_backends()
self.assertFalse(mocked_check.called)
check_database_backends(databases=self.databases)
self.assertTrue(mocked_check.called)
- @unittest.skipUnless(connection.vendor == 'mysql', 'Test only for MySQL')
+ @unittest.skipUnless(connection.vendor == "mysql", "Test only for MySQL")
def test_mysql_strict_mode(self):
def _clean_sql_mode():
for alias in self.databases:
- if hasattr(connections[alias], 'sql_mode'):
+ if hasattr(connections[alias], "sql_mode"):
del connections[alias].sql_mode
_clean_sql_mode()
good_sql_modes = [
- 'STRICT_TRANS_TABLES,STRICT_ALL_TABLES',
- 'STRICT_TRANS_TABLES',
- 'STRICT_ALL_TABLES',
+ "STRICT_TRANS_TABLES,STRICT_ALL_TABLES",
+ "STRICT_TRANS_TABLES",
+ "STRICT_ALL_TABLES",
]
for sql_mode in good_sql_modes:
with mock.patch.object(
- connection, 'mysql_server_data', {'sql_mode': sql_mode},
+ connection,
+ "mysql_server_data",
+ {"sql_mode": sql_mode},
):
self.assertEqual(check_database_backends(databases=self.databases), [])
_clean_sql_mode()
- bad_sql_modes = ['', 'WHATEVER']
+ bad_sql_modes = ["", "WHATEVER"]
for sql_mode in bad_sql_modes:
mocker_default = mock.patch.object(
- connection, 'mysql_server_data', {'sql_mode': sql_mode},
+ connection,
+ "mysql_server_data",
+ {"sql_mode": sql_mode},
)
mocker_other = mock.patch.object(
- connections['other'], 'mysql_server_data', {'sql_mode': sql_mode},
+ connections["other"],
+ "mysql_server_data",
+ {"sql_mode": sql_mode},
)
with mocker_default, mocker_other:
# One warning for each database alias
result = check_database_backends(databases=self.databases)
self.assertEqual(len(result), 2)
- self.assertEqual([r.id for r in result], ['mysql.W002', 'mysql.W002'])
+ self.assertEqual([r.id for r in result], ["mysql.W002", "mysql.W002"])
_clean_sql_mode()
diff --git a/tests/check_framework/test_files.py b/tests/check_framework/test_files.py
index 6b30220e37..0672fba9eb 100644
--- a/tests/check_framework/test_files.py
+++ b/tests/check_framework/test_files.py
@@ -9,7 +9,7 @@ class FilesCheckTests(SimpleTestCase):
def test_file_upload_temp_dir(self):
tests = [
None,
- '',
+ "",
Path.cwd(),
str(Path.cwd()),
]
@@ -18,7 +18,7 @@ class FilesCheckTests(SimpleTestCase):
self.assertEqual(check_setting_file_upload_temp_dir(None), [])
def test_file_upload_temp_dir_nonexistent(self):
- for setting in ['nonexistent', Path('nonexistent')]:
+ for setting in ["nonexistent", Path("nonexistent")]:
with self.subTest(setting), self.settings(FILE_UPLOAD_TEMP_DIR=setting):
self.assertEqual(
check_setting_file_upload_temp_dir(None),
@@ -26,7 +26,7 @@ class FilesCheckTests(SimpleTestCase):
Error(
"The FILE_UPLOAD_TEMP_DIR setting refers to the "
"nonexistent directory 'nonexistent'.",
- id='files.E001',
+ id="files.E001",
),
],
)
diff --git a/tests/check_framework/test_model_checks.py b/tests/check_framework/test_model_checks.py
index 3a626038fd..3075a61be8 100644
--- a/tests/check_framework/test_model_checks.py
+++ b/tests/check_framework/test_model_checks.py
@@ -5,7 +5,10 @@ from django.core.checks import Error, Warning
from django.db import models
from django.test import SimpleTestCase, TestCase, skipUnlessDBFeature
from django.test.utils import (
- isolate_apps, modify_settings, override_settings, override_system_checks,
+ isolate_apps,
+ modify_settings,
+ override_settings,
+ override_system_checks,
)
@@ -13,117 +16,133 @@ class EmptyRouter:
pass
-@isolate_apps('check_framework', attr_name='apps')
+@isolate_apps("check_framework", attr_name="apps")
@override_system_checks([checks.model_checks.check_all_models])
class DuplicateDBTableTests(SimpleTestCase):
def test_collision_in_same_app(self):
class Model1(models.Model):
class Meta:
- db_table = 'test_table'
+ db_table = "test_table"
class Model2(models.Model):
class Meta:
- db_table = 'test_table'
-
- self.assertEqual(checks.run_checks(app_configs=self.apps.get_app_configs()), [
- Error(
- "db_table 'test_table' is used by multiple models: "
- "check_framework.Model1, check_framework.Model2.",
- obj='test_table',
- id='models.E028',
- )
- ])
-
- @override_settings(DATABASE_ROUTERS=['check_framework.test_model_checks.EmptyRouter'])
+ db_table = "test_table"
+
+ self.assertEqual(
+ checks.run_checks(app_configs=self.apps.get_app_configs()),
+ [
+ Error(
+ "db_table 'test_table' is used by multiple models: "
+ "check_framework.Model1, check_framework.Model2.",
+ obj="test_table",
+ id="models.E028",
+ )
+ ],
+ )
+
+ @override_settings(
+ DATABASE_ROUTERS=["check_framework.test_model_checks.EmptyRouter"]
+ )
def test_collision_in_same_app_database_routers_installed(self):
class Model1(models.Model):
class Meta:
- db_table = 'test_table'
+ db_table = "test_table"
class Model2(models.Model):
class Meta:
- db_table = 'test_table'
-
- self.assertEqual(checks.run_checks(app_configs=self.apps.get_app_configs()), [
- Warning(
- "db_table 'test_table' is used by multiple models: "
- "check_framework.Model1, check_framework.Model2.",
- hint=(
- 'You have configured settings.DATABASE_ROUTERS. Verify '
- 'that check_framework.Model1, check_framework.Model2 are '
- 'correctly routed to separate databases.'
- ),
- obj='test_table',
- id='models.W035',
- )
- ])
-
- @modify_settings(INSTALLED_APPS={'append': 'basic'})
- @isolate_apps('basic', 'check_framework', kwarg_name='apps')
+ db_table = "test_table"
+
+ self.assertEqual(
+ checks.run_checks(app_configs=self.apps.get_app_configs()),
+ [
+ Warning(
+ "db_table 'test_table' is used by multiple models: "
+ "check_framework.Model1, check_framework.Model2.",
+ hint=(
+ "You have configured settings.DATABASE_ROUTERS. Verify "
+ "that check_framework.Model1, check_framework.Model2 are "
+ "correctly routed to separate databases."
+ ),
+ obj="test_table",
+ id="models.W035",
+ )
+ ],
+ )
+
+ @modify_settings(INSTALLED_APPS={"append": "basic"})
+ @isolate_apps("basic", "check_framework", kwarg_name="apps")
def test_collision_across_apps(self, apps):
class Model1(models.Model):
class Meta:
- app_label = 'basic'
- db_table = 'test_table'
+ app_label = "basic"
+ db_table = "test_table"
class Model2(models.Model):
class Meta:
- app_label = 'check_framework'
- db_table = 'test_table'
-
- self.assertEqual(checks.run_checks(app_configs=apps.get_app_configs()), [
- Error(
- "db_table 'test_table' is used by multiple models: "
- "basic.Model1, check_framework.Model2.",
- obj='test_table',
- id='models.E028',
- )
- ])
-
- @modify_settings(INSTALLED_APPS={'append': 'basic'})
- @override_settings(DATABASE_ROUTERS=['check_framework.test_model_checks.EmptyRouter'])
- @isolate_apps('basic', 'check_framework', kwarg_name='apps')
+ app_label = "check_framework"
+ db_table = "test_table"
+
+ self.assertEqual(
+ checks.run_checks(app_configs=apps.get_app_configs()),
+ [
+ Error(
+ "db_table 'test_table' is used by multiple models: "
+ "basic.Model1, check_framework.Model2.",
+ obj="test_table",
+ id="models.E028",
+ )
+ ],
+ )
+
+ @modify_settings(INSTALLED_APPS={"append": "basic"})
+ @override_settings(
+ DATABASE_ROUTERS=["check_framework.test_model_checks.EmptyRouter"]
+ )
+ @isolate_apps("basic", "check_framework", kwarg_name="apps")
def test_collision_across_apps_database_routers_installed(self, apps):
class Model1(models.Model):
class Meta:
- app_label = 'basic'
- db_table = 'test_table'
+ app_label = "basic"
+ db_table = "test_table"
class Model2(models.Model):
class Meta:
- app_label = 'check_framework'
- db_table = 'test_table'
-
- self.assertEqual(checks.run_checks(app_configs=apps.get_app_configs()), [
- Warning(
- "db_table 'test_table' is used by multiple models: "
- "basic.Model1, check_framework.Model2.",
- hint=(
- 'You have configured settings.DATABASE_ROUTERS. Verify '
- 'that basic.Model1, check_framework.Model2 are correctly '
- 'routed to separate databases.'
- ),
- obj='test_table',
- id='models.W035',
- )
- ])
+ app_label = "check_framework"
+ db_table = "test_table"
+
+ self.assertEqual(
+ checks.run_checks(app_configs=apps.get_app_configs()),
+ [
+ Warning(
+ "db_table 'test_table' is used by multiple models: "
+ "basic.Model1, check_framework.Model2.",
+ hint=(
+ "You have configured settings.DATABASE_ROUTERS. Verify "
+ "that basic.Model1, check_framework.Model2 are correctly "
+ "routed to separate databases."
+ ),
+ obj="test_table",
+ id="models.W035",
+ )
+ ],
+ )
def test_no_collision_for_unmanaged_models(self):
class Unmanaged(models.Model):
class Meta:
- db_table = 'test_table'
+ db_table = "test_table"
managed = False
class Managed(models.Model):
class Meta:
- db_table = 'test_table'
+ db_table = "test_table"
self.assertEqual(checks.run_checks(app_configs=self.apps.get_app_configs()), [])
def test_no_collision_for_proxy_models(self):
class Model(models.Model):
class Meta:
- db_table = 'test_table'
+ db_table = "test_table"
class ProxyModel(Model):
class Meta:
@@ -133,25 +152,28 @@ class DuplicateDBTableTests(SimpleTestCase):
self.assertEqual(checks.run_checks(app_configs=self.apps.get_app_configs()), [])
-@isolate_apps('check_framework', attr_name='apps')
+@isolate_apps("check_framework", attr_name="apps")
@override_system_checks([checks.model_checks.check_all_models])
class IndexNameTests(SimpleTestCase):
def test_collision_in_same_model(self):
- index = models.Index(fields=['id'], name='foo')
+ index = models.Index(fields=["id"], name="foo")
class Model(models.Model):
class Meta:
indexes = [index, index]
- self.assertEqual(checks.run_checks(app_configs=self.apps.get_app_configs()), [
- Error(
- "index name 'foo' is not unique for model check_framework.Model.",
- id='models.E029',
- ),
- ])
+ self.assertEqual(
+ checks.run_checks(app_configs=self.apps.get_app_configs()),
+ [
+ Error(
+ "index name 'foo' is not unique for model check_framework.Model.",
+ id="models.E029",
+ ),
+ ],
+ )
def test_collision_in_different_models(self):
- index = models.Index(fields=['id'], name='foo')
+ index = models.Index(fields=["id"], name="foo")
class Model1(models.Model):
class Meta:
@@ -161,18 +183,21 @@ class IndexNameTests(SimpleTestCase):
class Meta:
indexes = [index]
- self.assertEqual(checks.run_checks(app_configs=self.apps.get_app_configs()), [
- Error(
- "index name 'foo' is not unique among models: "
- "check_framework.Model1, check_framework.Model2.",
- id='models.E030',
- ),
- ])
+ self.assertEqual(
+ checks.run_checks(app_configs=self.apps.get_app_configs()),
+ [
+ Error(
+ "index name 'foo' is not unique among models: "
+ "check_framework.Model1, check_framework.Model2.",
+ id="models.E030",
+ ),
+ ],
+ )
def test_collision_abstract_model(self):
class AbstractModel(models.Model):
class Meta:
- indexes = [models.Index(fields=['id'], name='foo')]
+ indexes = [models.Index(fields=["id"], name="foo")]
abstract = True
class Model1(AbstractModel):
@@ -181,20 +206,25 @@ class IndexNameTests(SimpleTestCase):
class Model2(AbstractModel):
pass
- self.assertEqual(checks.run_checks(app_configs=self.apps.get_app_configs()), [
- Error(
- "index name 'foo' is not unique among models: "
- "check_framework.Model1, check_framework.Model2.",
- id='models.E030',
- ),
- ])
+ self.assertEqual(
+ checks.run_checks(app_configs=self.apps.get_app_configs()),
+ [
+ Error(
+ "index name 'foo' is not unique among models: "
+ "check_framework.Model1, check_framework.Model2.",
+ id="models.E030",
+ ),
+ ],
+ )
def test_no_collision_abstract_model_interpolation(self):
class AbstractModel(models.Model):
name = models.CharField(max_length=20)
class Meta:
- indexes = [models.Index(fields=['name'], name='%(app_label)s_%(class)s_foo')]
+ indexes = [
+ models.Index(fields=["name"], name="%(app_label)s_%(class)s_foo")
+ ]
abstract = True
class Model1(AbstractModel):
@@ -205,69 +235,75 @@ class IndexNameTests(SimpleTestCase):
self.assertEqual(checks.run_checks(app_configs=self.apps.get_app_configs()), [])
- @modify_settings(INSTALLED_APPS={'append': 'basic'})
- @isolate_apps('basic', 'check_framework', kwarg_name='apps')
+ @modify_settings(INSTALLED_APPS={"append": "basic"})
+ @isolate_apps("basic", "check_framework", kwarg_name="apps")
def test_collision_across_apps(self, apps):
- index = models.Index(fields=['id'], name='foo')
+ index = models.Index(fields=["id"], name="foo")
class Model1(models.Model):
class Meta:
- app_label = 'basic'
+ app_label = "basic"
indexes = [index]
class Model2(models.Model):
class Meta:
- app_label = 'check_framework'
+ app_label = "check_framework"
indexes = [index]
- self.assertEqual(checks.run_checks(app_configs=apps.get_app_configs()), [
- Error(
- "index name 'foo' is not unique among models: basic.Model1, "
- "check_framework.Model2.",
- id='models.E030',
- ),
- ])
+ self.assertEqual(
+ checks.run_checks(app_configs=apps.get_app_configs()),
+ [
+ Error(
+ "index name 'foo' is not unique among models: basic.Model1, "
+ "check_framework.Model2.",
+ id="models.E030",
+ ),
+ ],
+ )
- @modify_settings(INSTALLED_APPS={'append': 'basic'})
- @isolate_apps('basic', 'check_framework', kwarg_name='apps')
+ @modify_settings(INSTALLED_APPS={"append": "basic"})
+ @isolate_apps("basic", "check_framework", kwarg_name="apps")
def test_no_collision_across_apps_interpolation(self, apps):
- index = models.Index(fields=['id'], name='%(app_label)s_%(class)s_foo')
+ index = models.Index(fields=["id"], name="%(app_label)s_%(class)s_foo")
class Model1(models.Model):
class Meta:
- app_label = 'basic'
+ app_label = "basic"
constraints = [index]
class Model2(models.Model):
class Meta:
- app_label = 'check_framework'
+ app_label = "check_framework"
constraints = [index]
self.assertEqual(checks.run_checks(app_configs=apps.get_app_configs()), [])
-@isolate_apps('check_framework', attr_name='apps')
+@isolate_apps("check_framework", attr_name="apps")
@override_system_checks([checks.model_checks.check_all_models])
-@skipUnlessDBFeature('supports_table_check_constraints')
+@skipUnlessDBFeature("supports_table_check_constraints")
class ConstraintNameTests(TestCase):
def test_collision_in_same_model(self):
class Model(models.Model):
class Meta:
constraints = [
- models.CheckConstraint(check=models.Q(id__gt=0), name='foo'),
- models.CheckConstraint(check=models.Q(id__lt=100), name='foo'),
+ models.CheckConstraint(check=models.Q(id__gt=0), name="foo"),
+ models.CheckConstraint(check=models.Q(id__lt=100), name="foo"),
]
- self.assertEqual(checks.run_checks(app_configs=self.apps.get_app_configs()), [
- Error(
- "constraint name 'foo' is not unique for model "
- "check_framework.Model.",
- id='models.E031',
- ),
- ])
+ self.assertEqual(
+ checks.run_checks(app_configs=self.apps.get_app_configs()),
+ [
+ Error(
+ "constraint name 'foo' is not unique for model "
+ "check_framework.Model.",
+ id="models.E031",
+ ),
+ ],
+ )
def test_collision_in_different_models(self):
- constraint = models.CheckConstraint(check=models.Q(id__gt=0), name='foo')
+ constraint = models.CheckConstraint(check=models.Q(id__gt=0), name="foo")
class Model1(models.Model):
class Meta:
@@ -277,18 +313,23 @@ class ConstraintNameTests(TestCase):
class Meta:
constraints = [constraint]
- self.assertEqual(checks.run_checks(app_configs=self.apps.get_app_configs()), [
- Error(
- "constraint name 'foo' is not unique among models: "
- "check_framework.Model1, check_framework.Model2.",
- id='models.E032',
- ),
- ])
+ self.assertEqual(
+ checks.run_checks(app_configs=self.apps.get_app_configs()),
+ [
+ Error(
+ "constraint name 'foo' is not unique among models: "
+ "check_framework.Model1, check_framework.Model2.",
+ id="models.E032",
+ ),
+ ],
+ )
def test_collision_abstract_model(self):
class AbstractModel(models.Model):
class Meta:
- constraints = [models.CheckConstraint(check=models.Q(id__gt=0), name='foo')]
+ constraints = [
+ models.CheckConstraint(check=models.Q(id__gt=0), name="foo")
+ ]
abstract = True
class Model1(AbstractModel):
@@ -297,19 +338,24 @@ class ConstraintNameTests(TestCase):
class Model2(AbstractModel):
pass
- self.assertEqual(checks.run_checks(app_configs=self.apps.get_app_configs()), [
- Error(
- "constraint name 'foo' is not unique among models: "
- "check_framework.Model1, check_framework.Model2.",
- id='models.E032',
- ),
- ])
+ self.assertEqual(
+ checks.run_checks(app_configs=self.apps.get_app_configs()),
+ [
+ Error(
+ "constraint name 'foo' is not unique among models: "
+ "check_framework.Model1, check_framework.Model2.",
+ id="models.E032",
+ ),
+ ],
+ )
def test_no_collision_abstract_model_interpolation(self):
class AbstractModel(models.Model):
class Meta:
constraints = [
- models.CheckConstraint(check=models.Q(id__gt=0), name='%(app_label)s_%(class)s_foo'),
+ models.CheckConstraint(
+ check=models.Q(id__gt=0), name="%(app_label)s_%(class)s_foo"
+ ),
]
abstract = True
@@ -321,42 +367,47 @@ class ConstraintNameTests(TestCase):
self.assertEqual(checks.run_checks(app_configs=self.apps.get_app_configs()), [])
- @modify_settings(INSTALLED_APPS={'append': 'basic'})
- @isolate_apps('basic', 'check_framework', kwarg_name='apps')
+ @modify_settings(INSTALLED_APPS={"append": "basic"})
+ @isolate_apps("basic", "check_framework", kwarg_name="apps")
def test_collision_across_apps(self, apps):
- constraint = models.CheckConstraint(check=models.Q(id__gt=0), name='foo')
+ constraint = models.CheckConstraint(check=models.Q(id__gt=0), name="foo")
class Model1(models.Model):
class Meta:
- app_label = 'basic'
+ app_label = "basic"
constraints = [constraint]
class Model2(models.Model):
class Meta:
- app_label = 'check_framework'
+ app_label = "check_framework"
constraints = [constraint]
- self.assertEqual(checks.run_checks(app_configs=apps.get_app_configs()), [
- Error(
- "constraint name 'foo' is not unique among models: "
- "basic.Model1, check_framework.Model2.",
- id='models.E032',
- ),
- ])
+ self.assertEqual(
+ checks.run_checks(app_configs=apps.get_app_configs()),
+ [
+ Error(
+ "constraint name 'foo' is not unique among models: "
+ "basic.Model1, check_framework.Model2.",
+ id="models.E032",
+ ),
+ ],
+ )
- @modify_settings(INSTALLED_APPS={'append': 'basic'})
- @isolate_apps('basic', 'check_framework', kwarg_name='apps')
+ @modify_settings(INSTALLED_APPS={"append": "basic"})
+ @isolate_apps("basic", "check_framework", kwarg_name="apps")
def test_no_collision_across_apps_interpolation(self, apps):
- constraint = models.CheckConstraint(check=models.Q(id__gt=0), name='%(app_label)s_%(class)s_foo')
+ constraint = models.CheckConstraint(
+ check=models.Q(id__gt=0), name="%(app_label)s_%(class)s_foo"
+ )
class Model1(models.Model):
class Meta:
- app_label = 'basic'
+ app_label = "basic"
constraints = [constraint]
class Model2(models.Model):
class Meta:
- app_label = 'check_framework'
+ app_label = "check_framework"
constraints = [constraint]
self.assertEqual(checks.run_checks(app_configs=apps.get_app_configs()), [])
@@ -366,14 +417,14 @@ def mocked_is_overridden(self, setting):
# Force treating DEFAULT_AUTO_FIELD = 'django.db.models.AutoField' as a not
# overridden setting.
return (
- setting != 'DEFAULT_AUTO_FIELD' or
- self.DEFAULT_AUTO_FIELD != 'django.db.models.AutoField'
+ setting != "DEFAULT_AUTO_FIELD"
+ or self.DEFAULT_AUTO_FIELD != "django.db.models.AutoField"
)
-@mock.patch('django.conf.UserSettingsHolder.is_overridden', mocked_is_overridden)
-@override_settings(DEFAULT_AUTO_FIELD='django.db.models.AutoField')
-@isolate_apps('check_framework.apps.CheckDefaultPKConfig', attr_name='apps')
+@mock.patch("django.conf.UserSettingsHolder.is_overridden", mocked_is_overridden)
+@override_settings(DEFAULT_AUTO_FIELD="django.db.models.AutoField")
+@isolate_apps("check_framework.apps.CheckDefaultPKConfig", attr_name="apps")
@override_system_checks([checks.model_checks.check_all_models])
class ModelDefaultAutoFieldTests(SimpleTestCase):
msg = (
@@ -390,9 +441,12 @@ class ModelDefaultAutoFieldTests(SimpleTestCase):
class Model(models.Model):
pass
- self.assertEqual(checks.run_checks(app_configs=self.apps.get_app_configs()), [
- Warning(self.msg, hint=self.hint, obj=Model, id='models.W042'),
- ])
+ self.assertEqual(
+ checks.run_checks(app_configs=self.apps.get_app_configs()),
+ [
+ Warning(self.msg, hint=self.hint, obj=Model, id="models.W042"),
+ ],
+ )
def test_explicit_inherited_pk(self):
class Parent(models.Model):
@@ -406,7 +460,7 @@ class ModelDefaultAutoFieldTests(SimpleTestCase):
def test_skipped_on_model_with_invalid_app_label(self):
class Model(models.Model):
class Meta:
- app_label = 'invalid_app_label'
+ app_label = "invalid_app_label"
self.assertEqual(Model.check(), [])
@@ -434,9 +488,12 @@ class ModelDefaultAutoFieldTests(SimpleTestCase):
class Child(Parent):
pass
- self.assertEqual(checks.run_checks(app_configs=self.apps.get_app_configs()), [
- Warning(self.msg, hint=self.hint, obj=Parent, id='models.W042'),
- ])
+ self.assertEqual(
+ checks.run_checks(app_configs=self.apps.get_app_configs()),
+ [
+ Warning(self.msg, hint=self.hint, obj=Parent, id="models.W042"),
+ ],
+ )
def test_auto_created_inherited_parent_link(self):
class Parent(models.Model):
@@ -445,9 +502,12 @@ class ModelDefaultAutoFieldTests(SimpleTestCase):
class Child(Parent):
parent_ptr = models.OneToOneField(Parent, models.CASCADE, parent_link=True)
- self.assertEqual(checks.run_checks(app_configs=self.apps.get_app_configs()), [
- Warning(self.msg, hint=self.hint, obj=Parent, id='models.W042'),
- ])
+ self.assertEqual(
+ checks.run_checks(app_configs=self.apps.get_app_configs()),
+ [
+ Warning(self.msg, hint=self.hint, obj=Parent, id="models.W042"),
+ ],
+ )
def test_auto_created_pk_inherited_abstract_parent(self):
class Parent(models.Model):
@@ -457,11 +517,14 @@ class ModelDefaultAutoFieldTests(SimpleTestCase):
class Child(Parent):
pass
- self.assertEqual(checks.run_checks(app_configs=self.apps.get_app_configs()), [
- Warning(self.msg, hint=self.hint, obj=Child, id='models.W042'),
- ])
+ self.assertEqual(
+ checks.run_checks(app_configs=self.apps.get_app_configs()),
+ [
+ Warning(self.msg, hint=self.hint, obj=Child, id="models.W042"),
+ ],
+ )
- @override_settings(DEFAULT_AUTO_FIELD='django.db.models.BigAutoField')
+ @override_settings(DEFAULT_AUTO_FIELD="django.db.models.BigAutoField")
def test_default_auto_field_setting(self):
class Model(models.Model):
pass
@@ -474,10 +537,10 @@ class ModelDefaultAutoFieldTests(SimpleTestCase):
self.assertEqual(checks.run_checks(app_configs=self.apps.get_app_configs()), [])
- @isolate_apps('check_framework.apps.CheckPKConfig', kwarg_name='apps')
+ @isolate_apps("check_framework.apps.CheckPKConfig", kwarg_name="apps")
def test_app_default_auto_field(self, apps):
class ModelWithPkViaAppConfig(models.Model):
class Meta:
- app_label = 'check_framework.apps.CheckPKConfig'
+ app_label = "check_framework.apps.CheckPKConfig"
self.assertEqual(checks.run_checks(app_configs=apps.get_app_configs()), [])
diff --git a/tests/check_framework/test_model_field_deprecation.py b/tests/check_framework/test_model_field_deprecation.py
index f1fe285d6d..668553c04e 100644
--- a/tests/check_framework/test_model_field_deprecation.py
+++ b/tests/check_framework/test_model_field_deprecation.py
@@ -4,7 +4,7 @@ from django.test import SimpleTestCase
from django.test.utils import isolate_apps
-@isolate_apps('check_framework')
+@isolate_apps("check_framework")
class TestDeprecatedField(SimpleTestCase):
def test_default_details(self):
class MyField(models.Field):
@@ -14,37 +14,43 @@ class TestDeprecatedField(SimpleTestCase):
name = MyField()
model = Model()
- self.assertEqual(model.check(), [
- checks.Warning(
- msg='MyField has been deprecated.',
- obj=Model._meta.get_field('name'),
- id='fields.WXXX',
- )
- ])
+ self.assertEqual(
+ model.check(),
+ [
+ checks.Warning(
+ msg="MyField has been deprecated.",
+ obj=Model._meta.get_field("name"),
+ id="fields.WXXX",
+ )
+ ],
+ )
def test_user_specified_details(self):
class MyField(models.Field):
system_check_deprecated_details = {
- 'msg': 'This field is deprecated and will be removed soon.',
- 'hint': 'Use something else.',
- 'id': 'fields.W999',
+ "msg": "This field is deprecated and will be removed soon.",
+ "hint": "Use something else.",
+ "id": "fields.W999",
}
class Model(models.Model):
name = MyField()
model = Model()
- self.assertEqual(model.check(), [
- checks.Warning(
- msg='This field is deprecated and will be removed soon.',
- hint='Use something else.',
- obj=Model._meta.get_field('name'),
- id='fields.W999',
- )
- ])
+ self.assertEqual(
+ model.check(),
+ [
+ checks.Warning(
+ msg="This field is deprecated and will be removed soon.",
+ hint="Use something else.",
+ obj=Model._meta.get_field("name"),
+ id="fields.W999",
+ )
+ ],
+ )
-@isolate_apps('check_framework')
+@isolate_apps("check_framework")
class TestRemovedField(SimpleTestCase):
def test_default_details(self):
class MyField(models.Field):
@@ -54,31 +60,37 @@ class TestRemovedField(SimpleTestCase):
name = MyField()
model = Model()
- self.assertEqual(model.check(), [
- checks.Error(
- msg='MyField has been removed except for support in historical migrations.',
- obj=Model._meta.get_field('name'),
- id='fields.EXXX',
- )
- ])
+ self.assertEqual(
+ model.check(),
+ [
+ checks.Error(
+ msg="MyField has been removed except for support in historical migrations.",
+ obj=Model._meta.get_field("name"),
+ id="fields.EXXX",
+ )
+ ],
+ )
def test_user_specified_details(self):
class MyField(models.Field):
system_check_removed_details = {
- 'msg': 'Support for this field is gone.',
- 'hint': 'Use something else.',
- 'id': 'fields.E999',
+ "msg": "Support for this field is gone.",
+ "hint": "Use something else.",
+ "id": "fields.E999",
}
class Model(models.Model):
name = MyField()
model = Model()
- self.assertEqual(model.check(), [
- checks.Error(
- msg='Support for this field is gone.',
- hint='Use something else.',
- obj=Model._meta.get_field('name'),
- id='fields.E999',
- )
- ])
+ self.assertEqual(
+ model.check(),
+ [
+ checks.Error(
+ msg="Support for this field is gone.",
+ hint="Use something else.",
+ obj=Model._meta.get_field("name"),
+ id="fields.E999",
+ )
+ ],
+ )
diff --git a/tests/check_framework/test_multi_db.py b/tests/check_framework/test_multi_db.py
index 0697b3b94a..aca0a1f472 100644
--- a/tests/check_framework/test_multi_db.py
+++ b/tests/check_framework/test_multi_db.py
@@ -9,25 +9,25 @@ class TestRouter:
"""
Routes to the 'other' database if the model name starts with 'Other'.
"""
+
def allow_migrate(self, db, app_label, model_name=None, **hints):
- return db == ('other' if model_name.startswith('other') else 'default')
+ return db == ("other" if model_name.startswith("other") else "default")
@override_settings(DATABASE_ROUTERS=[TestRouter()])
-@isolate_apps('check_framework')
+@isolate_apps("check_framework")
class TestMultiDBChecks(SimpleTestCase):
-
def _patch_check_field_on(self, db):
- return mock.patch.object(connections[db].validation, 'check_field')
+ return mock.patch.object(connections[db].validation, "check_field")
def test_checks_called_on_the_default_database(self):
class Model(models.Model):
field = models.CharField(max_length=100)
model = Model()
- with self._patch_check_field_on('default') as mock_check_field_default:
- with self._patch_check_field_on('other') as mock_check_field_other:
- model.check(databases={'default', 'other'})
+ with self._patch_check_field_on("default") as mock_check_field_default:
+ with self._patch_check_field_on("other") as mock_check_field_other:
+ model.check(databases={"default", "other"})
self.assertTrue(mock_check_field_default.called)
self.assertFalse(mock_check_field_other.called)
@@ -36,8 +36,8 @@ class TestMultiDBChecks(SimpleTestCase):
field = models.CharField(max_length=100)
model = OtherModel()
- with self._patch_check_field_on('other') as mock_check_field_other:
- with self._patch_check_field_on('default') as mock_check_field_default:
- model.check(databases={'default', 'other'})
+ with self._patch_check_field_on("other") as mock_check_field_other:
+ with self._patch_check_field_on("default") as mock_check_field_default:
+ model.check(databases={"default", "other"})
self.assertTrue(mock_check_field_other.called)
self.assertFalse(mock_check_field_default.called)
diff --git a/tests/check_framework/test_security.py b/tests/check_framework/test_security.py
index 9002deefc5..413e2da1fa 100644
--- a/tests/check_framework/test_security.py
+++ b/tests/check_framework/test_security.py
@@ -22,7 +22,7 @@ class CheckSessionCookieSecureTest(SimpleTestCase):
@override_settings(
SESSION_COOKIE_SECURE=False,
INSTALLED_APPS=[],
- MIDDLEWARE=['django.contrib.sessions.middleware.SessionMiddleware'],
+ MIDDLEWARE=["django.contrib.sessions.middleware.SessionMiddleware"],
)
def test_session_cookie_secure_with_middleware(self):
"""
@@ -35,7 +35,7 @@ class CheckSessionCookieSecureTest(SimpleTestCase):
@override_settings(
SESSION_COOKIE_SECURE=False,
INSTALLED_APPS=["django.contrib.sessions"],
- MIDDLEWARE=['django.contrib.sessions.middleware.SessionMiddleware'],
+ MIDDLEWARE=["django.contrib.sessions.middleware.SessionMiddleware"],
)
def test_session_cookie_secure_both(self):
"""
@@ -47,7 +47,7 @@ class CheckSessionCookieSecureTest(SimpleTestCase):
@override_settings(
SESSION_COOKIE_SECURE=True,
INSTALLED_APPS=["django.contrib.sessions"],
- MIDDLEWARE=['django.contrib.sessions.middleware.SessionMiddleware'],
+ MIDDLEWARE=["django.contrib.sessions.middleware.SessionMiddleware"],
)
def test_session_cookie_secure_true(self):
"""
@@ -72,7 +72,7 @@ class CheckSessionCookieHttpOnlyTest(SimpleTestCase):
@override_settings(
SESSION_COOKIE_HTTPONLY=False,
INSTALLED_APPS=[],
- MIDDLEWARE=['django.contrib.sessions.middleware.SessionMiddleware'],
+ MIDDLEWARE=["django.contrib.sessions.middleware.SessionMiddleware"],
)
def test_session_cookie_httponly_with_middleware(self):
"""
@@ -85,7 +85,7 @@ class CheckSessionCookieHttpOnlyTest(SimpleTestCase):
@override_settings(
SESSION_COOKIE_HTTPONLY=False,
INSTALLED_APPS=["django.contrib.sessions"],
- MIDDLEWARE=['django.contrib.sessions.middleware.SessionMiddleware'],
+ MIDDLEWARE=["django.contrib.sessions.middleware.SessionMiddleware"],
)
def test_session_cookie_httponly_both(self):
"""
@@ -97,7 +97,7 @@ class CheckSessionCookieHttpOnlyTest(SimpleTestCase):
@override_settings(
SESSION_COOKIE_HTTPONLY=True,
INSTALLED_APPS=["django.contrib.sessions"],
- MIDDLEWARE=['django.contrib.sessions.middleware.SessionMiddleware'],
+ MIDDLEWARE=["django.contrib.sessions.middleware.SessionMiddleware"],
)
def test_session_cookie_httponly_true(self):
"""
@@ -114,7 +114,7 @@ class CheckCSRFMiddlewareTest(SimpleTestCase):
"""
self.assertEqual(csrf.check_csrf_middleware(None), [csrf.W003])
- @override_settings(MIDDLEWARE=['django.middleware.csrf.CsrfViewMiddleware'])
+ @override_settings(MIDDLEWARE=["django.middleware.csrf.CsrfViewMiddleware"])
def test_with_csrf_middleware(self):
self.assertEqual(csrf.check_csrf_middleware(None), [])
@@ -167,7 +167,7 @@ class CheckSecurityMiddlewareTest(SimpleTestCase):
"""
self.assertEqual(base.check_security_middleware(None), [base.W001])
- @override_settings(MIDDLEWARE=['django.middleware.security.SecurityMiddleware'])
+ @override_settings(MIDDLEWARE=["django.middleware.security.SecurityMiddleware"])
def test_with_security_middleware(self):
self.assertEqual(base.check_security_middleware(None), [])
@@ -254,7 +254,9 @@ class CheckStrictTransportSecurityPreloadTest(SimpleTestCase):
"""
self.assertEqual(base.check_sts_preload(None), [base.W021])
- @override_settings(MIDDLEWARE=[], SECURE_HSTS_PRELOAD=False, SECURE_HSTS_SECONDS=3600)
+ @override_settings(
+ MIDDLEWARE=[], SECURE_HSTS_PRELOAD=False, SECURE_HSTS_SECONDS=3600
+ )
def test_no_sts_preload_no_middleware(self):
"""
Don't warn if SecurityMiddleware isn't installed.
@@ -289,7 +291,9 @@ class CheckXFrameOptionsMiddlewareTest(SimpleTestCase):
"""
self.assertEqual(base.check_xframe_options_middleware(None), [base.W002])
- @override_settings(MIDDLEWARE=["django.middleware.clickjacking.XFrameOptionsMiddleware"])
+ @override_settings(
+ MIDDLEWARE=["django.middleware.clickjacking.XFrameOptionsMiddleware"]
+ )
def test_middleware_installed(self):
self.assertEqual(base.check_xframe_options_middleware(None), [])
@@ -297,7 +301,7 @@ class CheckXFrameOptionsMiddlewareTest(SimpleTestCase):
class CheckXFrameOptionsDenyTest(SimpleTestCase):
@override_settings(
MIDDLEWARE=["django.middleware.clickjacking.XFrameOptionsMiddleware"],
- X_FRAME_OPTIONS='SAMEORIGIN',
+ X_FRAME_OPTIONS="SAMEORIGIN",
)
def test_x_frame_options_not_deny(self):
"""
@@ -306,7 +310,7 @@ class CheckXFrameOptionsDenyTest(SimpleTestCase):
"""
self.assertEqual(base.check_xframe_deny(None), [base.W019])
- @override_settings(MIDDLEWARE=[], X_FRAME_OPTIONS='SAMEORIGIN')
+ @override_settings(MIDDLEWARE=[], X_FRAME_OPTIONS="SAMEORIGIN")
def test_middleware_not_installed(self):
"""
No error if XFrameOptionsMiddleware isn't in MIDDLEWARE even if
@@ -316,7 +320,7 @@ class CheckXFrameOptionsDenyTest(SimpleTestCase):
@override_settings(
MIDDLEWARE=["django.middleware.clickjacking.XFrameOptionsMiddleware"],
- X_FRAME_OPTIONS='DENY',
+ X_FRAME_OPTIONS="DENY",
)
def test_xframe_deny(self):
self.assertEqual(base.check_xframe_deny(None), [])
@@ -377,13 +381,15 @@ class CheckSSLRedirectTest(SimpleTestCase):
class CheckSecretKeyTest(SimpleTestCase):
- @override_settings(SECRET_KEY=('abcdefghijklmnopqrstuvwx' * 2) + 'ab')
+ @override_settings(SECRET_KEY=("abcdefghijklmnopqrstuvwx" * 2) + "ab")
def test_okay_secret_key(self):
self.assertEqual(len(settings.SECRET_KEY), base.SECRET_KEY_MIN_LENGTH)
- self.assertGreater(len(set(settings.SECRET_KEY)), base.SECRET_KEY_MIN_UNIQUE_CHARACTERS)
+ self.assertGreater(
+ len(set(settings.SECRET_KEY)), base.SECRET_KEY_MIN_UNIQUE_CHARACTERS
+ )
self.assertEqual(base.check_secret_key(None), [])
- @override_settings(SECRET_KEY='')
+ @override_settings(SECRET_KEY="")
def test_empty_secret_key(self):
self.assertEqual(base.check_secret_key(None), [base.W009])
@@ -402,20 +408,22 @@ class CheckSecretKeyTest(SimpleTestCase):
def test_insecure_secret_key(self):
self.assertEqual(base.check_secret_key(None), [base.W009])
- @override_settings(SECRET_KEY=('abcdefghijklmnopqrstuvwx' * 2) + 'a')
+ @override_settings(SECRET_KEY=("abcdefghijklmnopqrstuvwx" * 2) + "a")
def test_low_length_secret_key(self):
self.assertEqual(len(settings.SECRET_KEY), base.SECRET_KEY_MIN_LENGTH - 1)
self.assertEqual(base.check_secret_key(None), [base.W009])
- @override_settings(SECRET_KEY='abcd' * 20)
+ @override_settings(SECRET_KEY="abcd" * 20)
def test_low_entropy_secret_key(self):
self.assertGreater(len(settings.SECRET_KEY), base.SECRET_KEY_MIN_LENGTH)
- self.assertLess(len(set(settings.SECRET_KEY)), base.SECRET_KEY_MIN_UNIQUE_CHARACTERS)
+ self.assertLess(
+ len(set(settings.SECRET_KEY)), base.SECRET_KEY_MIN_UNIQUE_CHARACTERS
+ )
self.assertEqual(base.check_secret_key(None), [base.W009])
class CheckSecretKeyFallbacksTest(SimpleTestCase):
- @override_settings(SECRET_KEY_FALLBACKS=[('abcdefghijklmnopqrstuvwx' * 2) + 'ab'])
+ @override_settings(SECRET_KEY_FALLBACKS=[("abcdefghijklmnopqrstuvwx" * 2) + "ab"])
def test_okay_secret_key_fallbacks(self):
self.assertEqual(
len(settings.SECRET_KEY_FALLBACKS[0]),
@@ -430,29 +438,38 @@ class CheckSecretKeyFallbacksTest(SimpleTestCase):
def test_no_secret_key_fallbacks(self):
with self.settings(SECRET_KEY_FALLBACKS=None):
del settings.SECRET_KEY_FALLBACKS
- self.assertEqual(base.check_secret_key_fallbacks(None), [
- Warning(base.W025.msg % 'SECRET_KEY_FALLBACKS', id=base.W025.id),
- ])
+ self.assertEqual(
+ base.check_secret_key_fallbacks(None),
+ [
+ Warning(base.W025.msg % "SECRET_KEY_FALLBACKS", id=base.W025.id),
+ ],
+ )
- @override_settings(SECRET_KEY_FALLBACKS=[
- base.SECRET_KEY_INSECURE_PREFIX + get_random_secret_key()
- ])
+ @override_settings(
+ SECRET_KEY_FALLBACKS=[base.SECRET_KEY_INSECURE_PREFIX + get_random_secret_key()]
+ )
def test_insecure_secret_key_fallbacks(self):
- self.assertEqual(base.check_secret_key_fallbacks(None), [
- Warning(base.W025.msg % 'SECRET_KEY_FALLBACKS[0]', id=base.W025.id),
- ])
+ self.assertEqual(
+ base.check_secret_key_fallbacks(None),
+ [
+ Warning(base.W025.msg % "SECRET_KEY_FALLBACKS[0]", id=base.W025.id),
+ ],
+ )
- @override_settings(SECRET_KEY_FALLBACKS=[('abcdefghijklmnopqrstuvwx' * 2) + 'a'])
+ @override_settings(SECRET_KEY_FALLBACKS=[("abcdefghijklmnopqrstuvwx" * 2) + "a"])
def test_low_length_secret_key_fallbacks(self):
self.assertEqual(
len(settings.SECRET_KEY_FALLBACKS[0]),
base.SECRET_KEY_MIN_LENGTH - 1,
)
- self.assertEqual(base.check_secret_key_fallbacks(None), [
- Warning(base.W025.msg % 'SECRET_KEY_FALLBACKS[0]', id=base.W025.id),
- ])
+ self.assertEqual(
+ base.check_secret_key_fallbacks(None),
+ [
+ Warning(base.W025.msg % "SECRET_KEY_FALLBACKS[0]", id=base.W025.id),
+ ],
+ )
- @override_settings(SECRET_KEY_FALLBACKS=['abcd' * 20])
+ @override_settings(SECRET_KEY_FALLBACKS=["abcd" * 20])
def test_low_entropy_secret_key_fallbacks(self):
self.assertGreater(
len(settings.SECRET_KEY_FALLBACKS[0]),
@@ -462,29 +479,42 @@ class CheckSecretKeyFallbacksTest(SimpleTestCase):
len(set(settings.SECRET_KEY_FALLBACKS[0])),
base.SECRET_KEY_MIN_UNIQUE_CHARACTERS,
)
- self.assertEqual(base.check_secret_key_fallbacks(None), [
- Warning(base.W025.msg % 'SECRET_KEY_FALLBACKS[0]', id=base.W025.id),
- ])
-
- @override_settings(SECRET_KEY_FALLBACKS=[
- ('abcdefghijklmnopqrstuvwx' * 2) + 'ab',
- 'badkey',
- ])
+ self.assertEqual(
+ base.check_secret_key_fallbacks(None),
+ [
+ Warning(base.W025.msg % "SECRET_KEY_FALLBACKS[0]", id=base.W025.id),
+ ],
+ )
+
+ @override_settings(
+ SECRET_KEY_FALLBACKS=[
+ ("abcdefghijklmnopqrstuvwx" * 2) + "ab",
+ "badkey",
+ ]
+ )
def test_multiple_keys(self):
- self.assertEqual(base.check_secret_key_fallbacks(None), [
- Warning(base.W025.msg % 'SECRET_KEY_FALLBACKS[1]', id=base.W025.id),
- ])
-
- @override_settings(SECRET_KEY_FALLBACKS=[
- ('abcdefghijklmnopqrstuvwx' * 2) + 'ab',
- 'badkey1',
- 'badkey2',
- ])
+ self.assertEqual(
+ base.check_secret_key_fallbacks(None),
+ [
+ Warning(base.W025.msg % "SECRET_KEY_FALLBACKS[1]", id=base.W025.id),
+ ],
+ )
+
+ @override_settings(
+ SECRET_KEY_FALLBACKS=[
+ ("abcdefghijklmnopqrstuvwx" * 2) + "ab",
+ "badkey1",
+ "badkey2",
+ ]
+ )
def test_multiple_bad_keys(self):
- self.assertEqual(base.check_secret_key_fallbacks(None), [
- Warning(base.W025.msg % 'SECRET_KEY_FALLBACKS[1]', id=base.W025.id),
- Warning(base.W025.msg % 'SECRET_KEY_FALLBACKS[2]', id=base.W025.id),
- ])
+ self.assertEqual(
+ base.check_secret_key_fallbacks(None),
+ [
+ Warning(base.W025.msg % "SECRET_KEY_FALLBACKS[1]", id=base.W025.id),
+ Warning(base.W025.msg % "SECRET_KEY_FALLBACKS[2]", id=base.W025.id),
+ ],
+ )
class CheckDebugTest(SimpleTestCase):
@@ -505,14 +535,14 @@ class CheckAllowedHostsTest(SimpleTestCase):
def test_allowed_hosts_empty(self):
self.assertEqual(base.check_allowed_hosts(None), [base.W020])
- @override_settings(ALLOWED_HOSTS=['.example.com'])
+ @override_settings(ALLOWED_HOSTS=[".example.com"])
def test_allowed_hosts_set(self):
self.assertEqual(base.check_allowed_hosts(None), [])
class CheckReferrerPolicyTest(SimpleTestCase):
@override_settings(
- MIDDLEWARE=['django.middleware.security.SecurityMiddleware'],
+ MIDDLEWARE=["django.middleware.security.SecurityMiddleware"],
SECURE_REFERRER_POLICY=None,
)
def test_no_referrer_policy(self):
@@ -526,22 +556,24 @@ class CheckReferrerPolicyTest(SimpleTestCase):
"""
self.assertEqual(base.check_referrer_policy(None), [])
- @override_settings(MIDDLEWARE=['django.middleware.security.SecurityMiddleware'])
+ @override_settings(MIDDLEWARE=["django.middleware.security.SecurityMiddleware"])
def test_with_referrer_policy(self):
tests = (
- 'strict-origin',
- 'strict-origin,origin',
- 'strict-origin, origin',
- ['strict-origin', 'origin'],
- ('strict-origin', 'origin'),
+ "strict-origin",
+ "strict-origin,origin",
+ "strict-origin, origin",
+ ["strict-origin", "origin"],
+ ("strict-origin", "origin"),
)
for value in tests:
- with self.subTest(value=value), override_settings(SECURE_REFERRER_POLICY=value):
+ with self.subTest(value=value), override_settings(
+ SECURE_REFERRER_POLICY=value
+ ):
self.assertEqual(base.check_referrer_policy(None), [])
@override_settings(
- MIDDLEWARE=['django.middleware.security.SecurityMiddleware'],
- SECURE_REFERRER_POLICY='invalid-value',
+ MIDDLEWARE=["django.middleware.security.SecurityMiddleware"],
+ SECURE_REFERRER_POLICY="invalid-value",
)
def test_with_invalid_referrer_policy(self):
self.assertEqual(base.check_referrer_policy(None), [base.E023])
@@ -552,20 +584,20 @@ def failure_view_with_invalid_signature():
class CSRFFailureViewTest(SimpleTestCase):
- @override_settings(CSRF_FAILURE_VIEW='')
+ @override_settings(CSRF_FAILURE_VIEW="")
def test_failure_view_import_error(self):
self.assertEqual(
csrf.check_csrf_failure_view(None),
[
Error(
"The CSRF failure view '' could not be imported.",
- id='security.E102',
+ id="security.E102",
)
],
)
@override_settings(
- CSRF_FAILURE_VIEW='check_framework.test_security.failure_view_with_invalid_signature',
+ CSRF_FAILURE_VIEW="check_framework.test_security.failure_view_with_invalid_signature",
)
def test_failure_view_invalid_signature(self):
msg = (
@@ -575,21 +607,21 @@ class CSRFFailureViewTest(SimpleTestCase):
)
self.assertEqual(
csrf.check_csrf_failure_view(None),
- [Error(msg, id='security.E101')],
+ [Error(msg, id="security.E101")],
)
class CheckCrossOriginOpenerPolicyTest(SimpleTestCase):
@override_settings(
- MIDDLEWARE=['django.middleware.security.SecurityMiddleware'],
+ MIDDLEWARE=["django.middleware.security.SecurityMiddleware"],
SECURE_CROSS_ORIGIN_OPENER_POLICY=None,
)
def test_no_coop(self):
self.assertEqual(base.check_cross_origin_opener_policy(None), [])
- @override_settings(MIDDLEWARE=['django.middleware.security.SecurityMiddleware'])
+ @override_settings(MIDDLEWARE=["django.middleware.security.SecurityMiddleware"])
def test_with_coop(self):
- tests = ['same-origin', 'same-origin-allow-popups', 'unsafe-none']
+ tests = ["same-origin", "same-origin-allow-popups", "unsafe-none"]
for value in tests:
with self.subTest(value=value), override_settings(
SECURE_CROSS_ORIGIN_OPENER_POLICY=value,
@@ -597,8 +629,8 @@ class CheckCrossOriginOpenerPolicyTest(SimpleTestCase):
self.assertEqual(base.check_cross_origin_opener_policy(None), [])
@override_settings(
- MIDDLEWARE=['django.middleware.security.SecurityMiddleware'],
- SECURE_CROSS_ORIGIN_OPENER_POLICY='invalid-value',
+ MIDDLEWARE=["django.middleware.security.SecurityMiddleware"],
+ SECURE_CROSS_ORIGIN_OPENER_POLICY="invalid-value",
)
def test_with_invalid_coop(self):
self.assertEqual(base.check_cross_origin_opener_policy(None), [base.E024])
diff --git a/tests/check_framework/test_templates.py b/tests/check_framework/test_templates.py
index 88c0479436..352a017e55 100644
--- a/tests/check_framework/test_templates.py
+++ b/tests/check_framework/test_templates.py
@@ -2,8 +2,12 @@ from copy import copy, deepcopy
from django.core.checks import Error
from django.core.checks.templates import (
- E001, E002, E003, check_for_template_tags_with_the_same_name,
- check_setting_app_dirs_loaders, check_string_if_invalid_is_string,
+ E001,
+ E002,
+ E003,
+ check_for_template_tags_with_the_same_name,
+ check_setting_app_dirs_loaders,
+ check_string_if_invalid_is_string,
)
from django.test import SimpleTestCase
from django.test.utils import override_settings
@@ -12,10 +16,10 @@ from django.test.utils import override_settings
class CheckTemplateSettingsAppDirsTest(SimpleTestCase):
TEMPLATES_APP_DIRS_AND_LOADERS = [
{
- 'BACKEND': 'django.template.backends.django.DjangoTemplates',
- 'APP_DIRS': True,
- 'OPTIONS': {
- 'loaders': ['django.template.loaders.filesystem.Loader'],
+ "BACKEND": "django.template.backends.django.DjangoTemplates",
+ "APP_DIRS": True,
+ "OPTIONS": {
+ "loaders": ["django.template.loaders.filesystem.Loader"],
},
},
]
@@ -29,13 +33,13 @@ class CheckTemplateSettingsAppDirsTest(SimpleTestCase):
def test_app_dirs_removed(self):
TEMPLATES = deepcopy(self.TEMPLATES_APP_DIRS_AND_LOADERS)
- del TEMPLATES[0]['APP_DIRS']
+ del TEMPLATES[0]["APP_DIRS"]
with self.settings(TEMPLATES=TEMPLATES):
self.assertEqual(check_setting_app_dirs_loaders(None), [])
def test_loaders_removed(self):
TEMPLATES = deepcopy(self.TEMPLATES_APP_DIRS_AND_LOADERS)
- del TEMPLATES[0]['OPTIONS']['loaders']
+ del TEMPLATES[0]["OPTIONS"]["loaders"]
with self.settings(TEMPLATES=TEMPLATES):
self.assertEqual(check_setting_app_dirs_loaders(None), [])
@@ -43,15 +47,15 @@ class CheckTemplateSettingsAppDirsTest(SimpleTestCase):
class CheckTemplateStringIfInvalidTest(SimpleTestCase):
TEMPLATES_STRING_IF_INVALID = [
{
- 'BACKEND': 'django.template.backends.django.DjangoTemplates',
- 'OPTIONS': {
- 'string_if_invalid': False,
+ "BACKEND": "django.template.backends.django.DjangoTemplates",
+ "OPTIONS": {
+ "string_if_invalid": False,
},
},
{
- 'BACKEND': 'django.template.backends.django.DjangoTemplates',
- 'OPTIONS': {
- 'string_if_invalid': 42,
+ "BACKEND": "django.template.backends.django.DjangoTemplates",
+ "OPTIONS": {
+ "string_if_invalid": 42,
},
},
]
@@ -61,31 +65,41 @@ class CheckTemplateStringIfInvalidTest(SimpleTestCase):
super().setUpClass()
cls.error1 = copy(E002)
cls.error2 = copy(E002)
- string_if_invalid1 = cls.TEMPLATES_STRING_IF_INVALID[0]['OPTIONS']['string_if_invalid']
- string_if_invalid2 = cls.TEMPLATES_STRING_IF_INVALID[1]['OPTIONS']['string_if_invalid']
- cls.error1.msg = cls.error1.msg.format(string_if_invalid1, type(string_if_invalid1).__name__)
- cls.error2.msg = cls.error2.msg.format(string_if_invalid2, type(string_if_invalid2).__name__)
+ string_if_invalid1 = cls.TEMPLATES_STRING_IF_INVALID[0]["OPTIONS"][
+ "string_if_invalid"
+ ]
+ string_if_invalid2 = cls.TEMPLATES_STRING_IF_INVALID[1]["OPTIONS"][
+ "string_if_invalid"
+ ]
+ cls.error1.msg = cls.error1.msg.format(
+ string_if_invalid1, type(string_if_invalid1).__name__
+ )
+ cls.error2.msg = cls.error2.msg.format(
+ string_if_invalid2, type(string_if_invalid2).__name__
+ )
@override_settings(TEMPLATES=TEMPLATES_STRING_IF_INVALID)
def test_string_if_invalid_not_string(self):
- self.assertEqual(check_string_if_invalid_is_string(None), [self.error1, self.error2])
+ self.assertEqual(
+ check_string_if_invalid_is_string(None), [self.error1, self.error2]
+ )
def test_string_if_invalid_first_is_string(self):
TEMPLATES = deepcopy(self.TEMPLATES_STRING_IF_INVALID)
- TEMPLATES[0]['OPTIONS']['string_if_invalid'] = 'test'
+ TEMPLATES[0]["OPTIONS"]["string_if_invalid"] = "test"
with self.settings(TEMPLATES=TEMPLATES):
self.assertEqual(check_string_if_invalid_is_string(None), [self.error2])
def test_string_if_invalid_both_are_strings(self):
TEMPLATES = deepcopy(self.TEMPLATES_STRING_IF_INVALID)
- TEMPLATES[0]['OPTIONS']['string_if_invalid'] = 'test'
- TEMPLATES[1]['OPTIONS']['string_if_invalid'] = 'test'
+ TEMPLATES[0]["OPTIONS"]["string_if_invalid"] = "test"
+ TEMPLATES[1]["OPTIONS"]["string_if_invalid"] = "test"
with self.settings(TEMPLATES=TEMPLATES):
self.assertEqual(check_string_if_invalid_is_string(None), [])
def test_string_if_invalid_not_specified(self):
TEMPLATES = deepcopy(self.TEMPLATES_STRING_IF_INVALID)
- del TEMPLATES[1]['OPTIONS']['string_if_invalid']
+ del TEMPLATES[1]["OPTIONS"]["string_if_invalid"]
with self.settings(TEMPLATES=TEMPLATES):
self.assertEqual(check_string_if_invalid_is_string(None), [self.error1])
@@ -108,18 +122,20 @@ class CheckTemplateTagLibrariesWithSameName(SimpleTestCase):
@staticmethod
def get_settings(module_name, module_path):
return {
- 'BACKEND': 'django.template.backends.django.DjangoTemplates',
- 'OPTIONS': {
- 'libraries': {
- module_name: f'check_framework.template_test_apps.{module_path}',
+ "BACKEND": "django.template.backends.django.DjangoTemplates",
+ "OPTIONS": {
+ "libraries": {
+ module_name: f"check_framework.template_test_apps.{module_path}",
},
},
}
- @override_settings(INSTALLED_APPS=[
- 'check_framework.template_test_apps.same_tags_app_1',
- 'check_framework.template_test_apps.same_tags_app_2',
- ])
+ @override_settings(
+ INSTALLED_APPS=[
+ "check_framework.template_test_apps.same_tags_app_1",
+ "check_framework.template_test_apps.same_tags_app_2",
+ ]
+ )
def test_template_tags_with_same_name(self):
self.assertEqual(
check_for_template_tags_with_the_same_name(None),
@@ -127,46 +143,67 @@ class CheckTemplateTagLibrariesWithSameName(SimpleTestCase):
)
def test_template_tags_with_same_library_name(self):
- with self.settings(TEMPLATES=[
- self.get_settings('same_tags', 'same_tags_app_1.templatetags.same_tags'),
- self.get_settings('same_tags', 'same_tags_app_2.templatetags.same_tags'),
- ]):
+ with self.settings(
+ TEMPLATES=[
+ self.get_settings(
+ "same_tags", "same_tags_app_1.templatetags.same_tags"
+ ),
+ self.get_settings(
+ "same_tags", "same_tags_app_2.templatetags.same_tags"
+ ),
+ ]
+ ):
self.assertEqual(
check_for_template_tags_with_the_same_name(None),
[self.error_same_tags],
)
- @override_settings(INSTALLED_APPS=[
- 'check_framework.template_test_apps.same_tags_app_1'
- ])
+ @override_settings(
+ INSTALLED_APPS=["check_framework.template_test_apps.same_tags_app_1"]
+ )
def test_template_tags_with_same_library_name_and_module_name(self):
- with self.settings(TEMPLATES=[
- self.get_settings(
- 'same_tags',
- 'different_tags_app.templatetags.different_tags',
- ),
- ]):
- self.assertEqual(check_for_template_tags_with_the_same_name(None), [Error(
- E003.msg.format(
- "'same_tags'",
- "'check_framework.template_test_apps.different_tags_app."
- "templatetags.different_tags', "
- "'check_framework.template_test_apps.same_tags_app_1."
- "templatetags.same_tags'",
+ with self.settings(
+ TEMPLATES=[
+ self.get_settings(
+ "same_tags",
+ "different_tags_app.templatetags.different_tags",
),
- id=E003.id,
- )])
+ ]
+ ):
+ self.assertEqual(
+ check_for_template_tags_with_the_same_name(None),
+ [
+ Error(
+ E003.msg.format(
+ "'same_tags'",
+ "'check_framework.template_test_apps.different_tags_app."
+ "templatetags.different_tags', "
+ "'check_framework.template_test_apps.same_tags_app_1."
+ "templatetags.same_tags'",
+ ),
+ id=E003.id,
+ )
+ ],
+ )
def test_template_tags_with_different_library_name(self):
- with self.settings(TEMPLATES=[
- self.get_settings('same_tags', 'same_tags_app_1.templatetags.same_tags'),
- self.get_settings('not_same_tags', 'same_tags_app_2.templatetags.same_tags'),
- ]):
+ with self.settings(
+ TEMPLATES=[
+ self.get_settings(
+ "same_tags", "same_tags_app_1.templatetags.same_tags"
+ ),
+ self.get_settings(
+ "not_same_tags", "same_tags_app_2.templatetags.same_tags"
+ ),
+ ]
+ ):
self.assertEqual(check_for_template_tags_with_the_same_name(None), [])
- @override_settings(INSTALLED_APPS=[
- 'check_framework.template_test_apps.same_tags_app_1',
- 'check_framework.template_test_apps.different_tags_app',
- ])
+ @override_settings(
+ INSTALLED_APPS=[
+ "check_framework.template_test_apps.same_tags_app_1",
+ "check_framework.template_test_apps.different_tags_app",
+ ]
+ )
def test_template_tags_with_different_name(self):
self.assertEqual(check_for_template_tags_with_the_same_name(None), [])
diff --git a/tests/check_framework/test_translation.py b/tests/check_framework/test_translation.py
index 8747a52cda..b20ed90860 100644
--- a/tests/check_framework/test_translation.py
+++ b/tests/check_framework/test_translation.py
@@ -1,37 +1,38 @@
from django.core.checks import Error
from django.core.checks.translation import (
- check_language_settings_consistent, check_setting_language_code,
- check_setting_languages, check_setting_languages_bidi,
+ check_language_settings_consistent,
+ check_setting_language_code,
+ check_setting_languages,
+ check_setting_languages_bidi,
)
from django.test import SimpleTestCase, override_settings
class TranslationCheckTests(SimpleTestCase):
-
def setUp(self):
self.valid_tags = (
- 'en', # language
- 'mas', # language
- 'sgn-ase', # language+extlang
- 'fr-CA', # language+region
- 'es-419', # language+region
- 'zh-Hans', # language+script
- 'ca-ES-valencia', # language+region+variant
+ "en", # language
+ "mas", # language
+ "sgn-ase", # language+extlang
+ "fr-CA", # language+region
+ "es-419", # language+region
+ "zh-Hans", # language+script
+ "ca-ES-valencia", # language+region+variant
# FIXME: The following should be invalid:
- 'sr@latin', # language+script
+ "sr@latin", # language+script
)
self.invalid_tags = (
- None, # invalid type: None.
- 123, # invalid type: int.
- b'en', # invalid type: bytes.
- 'eü', # non-latin characters.
- 'en_US', # locale format.
- 'en--us', # empty subtag.
- '-en', # leading separator.
- 'en-', # trailing separator.
- 'en-US.UTF-8', # language tag w/ locale encoding.
- 'en_US.UTF-8', # locale format - language w/ region and encoding.
- 'ca_ES@valencia', # locale format - language w/ region and variant.
+ None, # invalid type: None.
+ 123, # invalid type: int.
+ b"en", # invalid type: bytes.
+ "eü", # non-latin characters.
+ "en_US", # locale format.
+ "en--us", # empty subtag.
+ "-en", # leading separator.
+ "en-", # trailing separator.
+ "en-US.UTF-8", # language tag w/ locale encoding.
+ "en_US.UTF-8", # locale format - language w/ region and encoding.
+ "ca_ES@valencia", # locale format - language w/ region and variant.
# FIXME: The following should be invalid:
# 'sr@latin', # locale instead of language tag.
)
@@ -42,12 +43,15 @@ class TranslationCheckTests(SimpleTestCase):
self.assertEqual(check_setting_language_code(None), [])
def test_invalid_language_code(self):
- msg = 'You have provided an invalid value for the LANGUAGE_CODE setting: %r.'
+ msg = "You have provided an invalid value for the LANGUAGE_CODE setting: %r."
for tag in self.invalid_tags:
with self.subTest(tag), self.settings(LANGUAGE_CODE=tag):
- self.assertEqual(check_setting_language_code(None), [
- Error(msg % tag, id='translation.E001'),
- ])
+ self.assertEqual(
+ check_setting_language_code(None),
+ [
+ Error(msg % tag, id="translation.E001"),
+ ],
+ )
def test_valid_languages(self):
for tag in self.valid_tags:
@@ -55,12 +59,15 @@ class TranslationCheckTests(SimpleTestCase):
self.assertEqual(check_setting_languages(None), [])
def test_invalid_languages(self):
- msg = 'You have provided an invalid language code in the LANGUAGES setting: %r.'
+ msg = "You have provided an invalid language code in the LANGUAGES setting: %r."
for tag in self.invalid_tags:
with self.subTest(tag), self.settings(LANGUAGES=[(tag, tag)]):
- self.assertEqual(check_setting_languages(None), [
- Error(msg % tag, id='translation.E002'),
- ])
+ self.assertEqual(
+ check_setting_languages(None),
+ [
+ Error(msg % tag, id="translation.E002"),
+ ],
+ )
def test_valid_languages_bidi(self):
for tag in self.valid_tags:
@@ -68,42 +75,48 @@ class TranslationCheckTests(SimpleTestCase):
self.assertEqual(check_setting_languages_bidi(None), [])
def test_invalid_languages_bidi(self):
- msg = 'You have provided an invalid language code in the LANGUAGES_BIDI setting: %r.'
+ msg = "You have provided an invalid language code in the LANGUAGES_BIDI setting: %r."
for tag in self.invalid_tags:
with self.subTest(tag), self.settings(LANGUAGES_BIDI=[tag]):
- self.assertEqual(check_setting_languages_bidi(None), [
- Error(msg % tag, id='translation.E003'),
- ])
+ self.assertEqual(
+ check_setting_languages_bidi(None),
+ [
+ Error(msg % tag, id="translation.E003"),
+ ],
+ )
- @override_settings(USE_I18N=True, LANGUAGES=[('en', 'English')])
+ @override_settings(USE_I18N=True, LANGUAGES=[("en", "English")])
def test_inconsistent_language_settings(self):
msg = (
- 'You have provided a value for the LANGUAGE_CODE setting that is '
- 'not in the LANGUAGES setting.'
+ "You have provided a value for the LANGUAGE_CODE setting that is "
+ "not in the LANGUAGES setting."
)
- for tag in ['fr', 'fr-CA', 'fr-357']:
+ for tag in ["fr", "fr-CA", "fr-357"]:
with self.subTest(tag), self.settings(LANGUAGE_CODE=tag):
- self.assertEqual(check_language_settings_consistent(None), [
- Error(msg, id='translation.E004'),
- ])
+ self.assertEqual(
+ check_language_settings_consistent(None),
+ [
+ Error(msg, id="translation.E004"),
+ ],
+ )
@override_settings(
USE_I18N=True,
LANGUAGES=[
- ('de', 'German'),
- ('es', 'Spanish'),
- ('fr', 'French'),
- ('ca', 'Catalan'),
+ ("de", "German"),
+ ("es", "Spanish"),
+ ("fr", "French"),
+ ("ca", "Catalan"),
],
)
def test_valid_variant_consistent_language_settings(self):
tests = [
# language + region.
- 'fr-CA',
- 'es-419',
- 'de-at',
+ "fr-CA",
+ "es-419",
+ "de-at",
# language + region + variant.
- 'ca-ES-valencia',
+ "ca-ES-valencia",
]
for tag in tests:
with self.subTest(tag), self.settings(LANGUAGE_CODE=tag):
diff --git a/tests/check_framework/test_urls.py b/tests/check_framework/test_urls.py
index 663c7a299c..6315f8834d 100644
--- a/tests/check_framework/test_urls.py
+++ b/tests/check_framework/test_urls.py
@@ -1,7 +1,10 @@
from django.conf import settings
from django.core.checks.messages import Error, Warning
from django.core.checks.urls import (
- E006, check_url_config, check_url_namespaces_unique, check_url_settings,
+ E006,
+ check_url_config,
+ check_url_namespaces_unique,
+ check_url_settings,
get_warning_for_invalid_pattern,
)
from django.test import SimpleTestCase
@@ -9,58 +12,67 @@ from django.test.utils import override_settings
class CheckUrlConfigTests(SimpleTestCase):
- @override_settings(ROOT_URLCONF='check_framework.urls.no_warnings')
+ @override_settings(ROOT_URLCONF="check_framework.urls.no_warnings")
def test_no_warnings(self):
result = check_url_config(None)
self.assertEqual(result, [])
- @override_settings(ROOT_URLCONF='check_framework.urls.no_warnings_i18n')
+ @override_settings(ROOT_URLCONF="check_framework.urls.no_warnings_i18n")
def test_no_warnings_i18n(self):
self.assertEqual(check_url_config(None), [])
- @override_settings(ROOT_URLCONF='check_framework.urls.warning_in_include')
+ @override_settings(ROOT_URLCONF="check_framework.urls.warning_in_include")
def test_check_resolver_recursive(self):
# The resolver is checked recursively (examining URL patterns in include()).
result = check_url_config(None)
self.assertEqual(len(result), 1)
warning = result[0]
- self.assertEqual(warning.id, 'urls.W001')
+ self.assertEqual(warning.id, "urls.W001")
- @override_settings(ROOT_URLCONF='check_framework.urls.include_with_dollar')
+ @override_settings(ROOT_URLCONF="check_framework.urls.include_with_dollar")
def test_include_with_dollar(self):
result = check_url_config(None)
self.assertEqual(len(result), 1)
warning = result[0]
- self.assertEqual(warning.id, 'urls.W001')
- self.assertEqual(warning.msg, (
- "Your URL pattern '^include-with-dollar$' uses include with a "
- "route ending with a '$'. Remove the dollar from the route to "
- "avoid problems including URLs."
- ))
-
- @override_settings(ROOT_URLCONF='check_framework.urls.contains_tuple')
+ self.assertEqual(warning.id, "urls.W001")
+ self.assertEqual(
+ warning.msg,
+ (
+ "Your URL pattern '^include-with-dollar$' uses include with a "
+ "route ending with a '$'. Remove the dollar from the route to "
+ "avoid problems including URLs."
+ ),
+ )
+
+ @override_settings(ROOT_URLCONF="check_framework.urls.contains_tuple")
def test_contains_tuple_not_url_instance(self):
result = check_url_config(None)
warning = result[0]
- self.assertEqual(warning.id, 'urls.E004')
- self.assertRegex(warning.msg, (
- r"^Your URL pattern \('\^tuple/\$', <function <lambda> at 0x(\w+)>\) is "
- r"invalid. Ensure that urlpatterns is a list of path\(\) and/or re_path\(\) "
- r"instances\.$"
- ))
-
- @override_settings(ROOT_URLCONF='check_framework.urls.include_contains_tuple')
+ self.assertEqual(warning.id, "urls.E004")
+ self.assertRegex(
+ warning.msg,
+ (
+ r"^Your URL pattern \('\^tuple/\$', <function <lambda> at 0x(\w+)>\) is "
+ r"invalid. Ensure that urlpatterns is a list of path\(\) and/or re_path\(\) "
+ r"instances\.$"
+ ),
+ )
+
+ @override_settings(ROOT_URLCONF="check_framework.urls.include_contains_tuple")
def test_contains_included_tuple(self):
result = check_url_config(None)
warning = result[0]
- self.assertEqual(warning.id, 'urls.E004')
- self.assertRegex(warning.msg, (
- r"^Your URL pattern \('\^tuple/\$', <function <lambda> at 0x(\w+)>\) is "
- r"invalid. Ensure that urlpatterns is a list of path\(\) and/or re_path\(\) "
- r"instances\.$"
- ))
-
- @override_settings(ROOT_URLCONF='check_framework.urls.beginning_with_slash')
+ self.assertEqual(warning.id, "urls.E004")
+ self.assertRegex(
+ warning.msg,
+ (
+ r"^Your URL pattern \('\^tuple/\$', <function <lambda> at 0x(\w+)>\) is "
+ r"invalid. Ensure that urlpatterns is a list of path\(\) and/or re_path\(\) "
+ r"instances\.$"
+ ),
+ )
+
+ @override_settings(ROOT_URLCONF="check_framework.urls.beginning_with_slash")
def test_beginning_with_slash(self):
msg = (
"Your URL pattern '%s' has a route beginning with a '/'. Remove "
@@ -68,13 +80,13 @@ class CheckUrlConfigTests(SimpleTestCase):
"an include(), ensure the include() pattern has a trailing '/'."
)
warning1, warning2 = check_url_config(None)
- self.assertEqual(warning1.id, 'urls.W002')
- self.assertEqual(warning1.msg, msg % '/path-starting-with-slash/')
- self.assertEqual(warning2.id, 'urls.W002')
- self.assertEqual(warning2.msg, msg % '/url-starting-with-slash/$')
+ self.assertEqual(warning1.id, "urls.W002")
+ self.assertEqual(warning1.msg, msg % "/path-starting-with-slash/")
+ self.assertEqual(warning2.id, "urls.W002")
+ self.assertEqual(warning2.msg, msg % "/url-starting-with-slash/$")
@override_settings(
- ROOT_URLCONF='check_framework.urls.beginning_with_slash',
+ ROOT_URLCONF="check_framework.urls.beginning_with_slash",
APPEND_SLASH=False,
)
def test_beginning_with_slash_append_slash(self):
@@ -83,23 +95,25 @@ class CheckUrlConfigTests(SimpleTestCase):
result = check_url_config(None)
self.assertEqual(result, [])
- @override_settings(ROOT_URLCONF='check_framework.urls.name_with_colon')
+ @override_settings(ROOT_URLCONF="check_framework.urls.name_with_colon")
def test_name_with_colon(self):
result = check_url_config(None)
self.assertEqual(len(result), 1)
warning = result[0]
- self.assertEqual(warning.id, 'urls.W003')
- expected_msg = "Your URL pattern '^$' [name='name_with:colon'] has a name including a ':'."
+ self.assertEqual(warning.id, "urls.W003")
+ expected_msg = (
+ "Your URL pattern '^$' [name='name_with:colon'] has a name including a ':'."
+ )
self.assertIn(expected_msg, warning.msg)
@override_settings(ROOT_URLCONF=None)
def test_no_root_urlconf_in_settings(self):
- delattr(settings, 'ROOT_URLCONF')
+ delattr(settings, "ROOT_URLCONF")
result = check_url_config(None)
self.assertEqual(result, [])
def test_get_warning_for_invalid_pattern_string(self):
- warning = get_warning_for_invalid_pattern('')[0]
+ warning = get_warning_for_invalid_pattern("")[0]
self.assertEqual(
warning.hint,
"Try removing the string ''. The list of urlpatterns should "
@@ -107,18 +121,18 @@ class CheckUrlConfigTests(SimpleTestCase):
)
def test_get_warning_for_invalid_pattern_tuple(self):
- warning = get_warning_for_invalid_pattern((r'^$', lambda x: x))[0]
+ warning = get_warning_for_invalid_pattern((r"^$", lambda x: x))[0]
self.assertEqual(warning.hint, "Try using path() instead of a tuple.")
def test_get_warning_for_invalid_pattern_other(self):
warning = get_warning_for_invalid_pattern(object())[0]
self.assertIsNone(warning.hint)
- @override_settings(ROOT_URLCONF='check_framework.urls.non_unique_namespaces')
+ @override_settings(ROOT_URLCONF="check_framework.urls.non_unique_namespaces")
def test_check_non_unique_namespaces(self):
result = check_url_namespaces_unique(None)
self.assertEqual(len(result), 2)
- non_unique_namespaces = ['app-ns1', 'app-1']
+ non_unique_namespaces = ["app-ns1", "app-1"]
warning_messages = [
"URL namespace '{}' isn't unique. You may not be able to reverse "
"all URLs in this namespace".format(namespace)
@@ -126,100 +140,117 @@ class CheckUrlConfigTests(SimpleTestCase):
]
for warning in result:
self.assertIsInstance(warning, Warning)
- self.assertEqual('urls.W005', warning.id)
+ self.assertEqual("urls.W005", warning.id)
self.assertIn(warning.msg, warning_messages)
- @override_settings(ROOT_URLCONF='check_framework.urls.unique_namespaces')
+ @override_settings(ROOT_URLCONF="check_framework.urls.unique_namespaces")
def test_check_unique_namespaces(self):
result = check_url_namespaces_unique(None)
self.assertEqual(result, [])
- @override_settings(ROOT_URLCONF='check_framework.urls.cbv_as_view')
+ @override_settings(ROOT_URLCONF="check_framework.urls.cbv_as_view")
def test_check_view_not_class(self):
- self.assertEqual(check_url_config(None), [
- Error(
- "Your URL pattern 'missing_as_view' has an invalid view, pass "
- "EmptyCBV.as_view() instead of EmptyCBV.",
- id='urls.E009',
- ),
- ])
+ self.assertEqual(
+ check_url_config(None),
+ [
+ Error(
+ "Your URL pattern 'missing_as_view' has an invalid view, pass "
+ "EmptyCBV.as_view() instead of EmptyCBV.",
+ id="urls.E009",
+ ),
+ ],
+ )
class UpdatedToPathTests(SimpleTestCase):
-
- @override_settings(ROOT_URLCONF='check_framework.urls.path_compatibility.contains_re_named_group')
+ @override_settings(
+ ROOT_URLCONF="check_framework.urls.path_compatibility.contains_re_named_group"
+ )
def test_contains_re_named_group(self):
result = check_url_config(None)
self.assertEqual(len(result), 1)
warning = result[0]
- self.assertEqual(warning.id, '2_0.W001')
+ self.assertEqual(warning.id, "2_0.W001")
expected_msg = "Your URL pattern '(?P<named_group>\\d+)' has a route"
self.assertIn(expected_msg, warning.msg)
- @override_settings(ROOT_URLCONF='check_framework.urls.path_compatibility.beginning_with_caret')
+ @override_settings(
+ ROOT_URLCONF="check_framework.urls.path_compatibility.beginning_with_caret"
+ )
def test_beginning_with_caret(self):
result = check_url_config(None)
self.assertEqual(len(result), 1)
warning = result[0]
- self.assertEqual(warning.id, '2_0.W001')
+ self.assertEqual(warning.id, "2_0.W001")
expected_msg = "Your URL pattern '^beginning-with-caret' has a route"
self.assertIn(expected_msg, warning.msg)
- @override_settings(ROOT_URLCONF='check_framework.urls.path_compatibility.ending_with_dollar')
+ @override_settings(
+ ROOT_URLCONF="check_framework.urls.path_compatibility.ending_with_dollar"
+ )
def test_ending_with_dollar(self):
result = check_url_config(None)
self.assertEqual(len(result), 1)
warning = result[0]
- self.assertEqual(warning.id, '2_0.W001')
+ self.assertEqual(warning.id, "2_0.W001")
expected_msg = "Your URL pattern 'ending-with-dollar$' has a route"
self.assertIn(expected_msg, warning.msg)
class CheckCustomErrorHandlersTests(SimpleTestCase):
-
@override_settings(
- ROOT_URLCONF='check_framework.urls.bad_function_based_error_handlers',
+ ROOT_URLCONF="check_framework.urls.bad_function_based_error_handlers",
)
def test_bad_function_based_handlers(self):
result = check_url_config(None)
self.assertEqual(len(result), 4)
for code, num_params, error in zip([400, 403, 404, 500], [2, 2, 2, 1], result):
- with self.subTest('handler{}'.format(code)):
- self.assertEqual(error, Error(
- "The custom handler{} view 'check_framework.urls."
- "bad_function_based_error_handlers.bad_handler' "
- "does not take the correct number of arguments (request{})."
- .format(code, ', exception' if num_params == 2 else ''),
- id='urls.E007',
- ))
+ with self.subTest("handler{}".format(code)):
+ self.assertEqual(
+ error,
+ Error(
+ "The custom handler{} view 'check_framework.urls."
+ "bad_function_based_error_handlers.bad_handler' "
+ "does not take the correct number of arguments (request{}).".format(
+ code, ", exception" if num_params == 2 else ""
+ ),
+ id="urls.E007",
+ ),
+ )
@override_settings(
- ROOT_URLCONF='check_framework.urls.bad_class_based_error_handlers',
+ ROOT_URLCONF="check_framework.urls.bad_class_based_error_handlers",
)
def test_bad_class_based_handlers(self):
result = check_url_config(None)
self.assertEqual(len(result), 4)
for code, num_params, error in zip([400, 403, 404, 500], [2, 2, 2, 1], result):
- with self.subTest('handler%s' % code):
- self.assertEqual(error, Error(
- "The custom handler%s view 'check_framework.urls."
- "bad_class_based_error_handlers.HandlerView.as_view."
- "<locals>.view' does not take the correct number of "
- "arguments (request%s)." % (
- code,
- ', exception' if num_params == 2 else '',
+ with self.subTest("handler%s" % code):
+ self.assertEqual(
+ error,
+ Error(
+ "The custom handler%s view 'check_framework.urls."
+ "bad_class_based_error_handlers.HandlerView.as_view."
+ "<locals>.view' does not take the correct number of "
+ "arguments (request%s)."
+ % (
+ code,
+ ", exception" if num_params == 2 else "",
+ ),
+ id="urls.E007",
),
- id='urls.E007',
- ))
+ )
- @override_settings(ROOT_URLCONF='check_framework.urls.bad_error_handlers_invalid_path')
+ @override_settings(
+ ROOT_URLCONF="check_framework.urls.bad_error_handlers_invalid_path"
+ )
def test_bad_handlers_invalid_path(self):
result = check_url_config(None)
paths = [
- 'django.views.bad_handler',
- 'django.invalid_module.bad_handler',
- 'invalid_module.bad_handler',
- 'django',
+ "django.views.bad_handler",
+ "django.invalid_module.bad_handler",
+ "invalid_module.bad_handler",
+ "django",
]
hints = [
"Could not import '{}'. View does not exist in module django.views.",
@@ -228,22 +259,27 @@ class CheckCustomErrorHandlersTests(SimpleTestCase):
"Could not import '{}'. The path must be fully qualified.",
]
for code, path, hint, error in zip([400, 403, 404, 500], paths, hints, result):
- with self.subTest('handler{}'.format(code)):
- self.assertEqual(error, Error(
- "The custom handler{} view '{}' could not be imported.".format(code, path),
- hint=hint.format(path),
- id='urls.E008',
- ))
+ with self.subTest("handler{}".format(code)):
+ self.assertEqual(
+ error,
+ Error(
+ "The custom handler{} view '{}' could not be imported.".format(
+ code, path
+ ),
+ hint=hint.format(path),
+ id="urls.E008",
+ ),
+ )
@override_settings(
- ROOT_URLCONF='check_framework.urls.good_function_based_error_handlers',
+ ROOT_URLCONF="check_framework.urls.good_function_based_error_handlers",
)
def test_good_function_based_handlers(self):
result = check_url_config(None)
self.assertEqual(result, [])
@override_settings(
- ROOT_URLCONF='check_framework.urls.good_class_based_error_handlers',
+ ROOT_URLCONF="check_framework.urls.good_class_based_error_handlers",
)
def test_good_class_based_handlers(self):
result = check_url_config(None)
@@ -251,25 +287,24 @@ class CheckCustomErrorHandlersTests(SimpleTestCase):
class CheckURLSettingsTests(SimpleTestCase):
-
- @override_settings(STATIC_URL='a/', MEDIA_URL='b/')
+ @override_settings(STATIC_URL="a/", MEDIA_URL="b/")
def test_slash_no_errors(self):
self.assertEqual(check_url_settings(None), [])
- @override_settings(STATIC_URL='', MEDIA_URL='')
+ @override_settings(STATIC_URL="", MEDIA_URL="")
def test_empty_string_no_errors(self):
self.assertEqual(check_url_settings(None), [])
- @override_settings(STATIC_URL='noslash')
+ @override_settings(STATIC_URL="noslash")
def test_static_url_no_slash(self):
- self.assertEqual(check_url_settings(None), [E006('STATIC_URL')])
+ self.assertEqual(check_url_settings(None), [E006("STATIC_URL")])
- @override_settings(STATIC_URL='slashes//')
+ @override_settings(STATIC_URL="slashes//")
def test_static_url_double_slash_allowed(self):
# The check allows for a double slash, presuming the user knows what
# they are doing.
self.assertEqual(check_url_settings(None), [])
- @override_settings(MEDIA_URL='noslash')
+ @override_settings(MEDIA_URL="noslash")
def test_media_url_no_slash(self):
- self.assertEqual(check_url_settings(None), [E006('MEDIA_URL')])
+ self.assertEqual(check_url_settings(None), [E006("MEDIA_URL")])
diff --git a/tests/check_framework/tests.py b/tests/check_framework/tests.py
index f43abaca12..4c09c757b4 100644
--- a/tests/check_framework/tests.py
+++ b/tests/check_framework/tests.py
@@ -10,9 +10,7 @@ from django.core.management import call_command
from django.core.management.base import CommandError
from django.db import models
from django.test import SimpleTestCase
-from django.test.utils import (
- isolate_apps, override_settings, override_system_checks,
-)
+from django.test.utils import isolate_apps, override_settings, override_system_checks
from .models import SimpleModel, my_check
@@ -23,9 +21,7 @@ class DummyObj:
class SystemCheckFrameworkTests(SimpleTestCase):
-
def test_register_and_run_checks(self):
-
def f(**kwargs):
calls[0] += 1
return [1, 2, 3]
@@ -62,15 +58,20 @@ class SystemCheckFrameworkTests(SimpleTestCase):
self.assertEqual(errors, errors2)
self.assertEqual(sorted(errors), [4])
- errors = registry.run_checks(tags=["tag1", "tag2"], include_deployment_checks=True)
- errors2 = registry2.run_checks(tags=["tag1", "tag2"], include_deployment_checks=True)
+ errors = registry.run_checks(
+ tags=["tag1", "tag2"], include_deployment_checks=True
+ )
+ errors2 = registry2.run_checks(
+ tags=["tag1", "tag2"], include_deployment_checks=True
+ )
self.assertEqual(errors, errors2)
self.assertEqual(sorted(errors), [4, 5])
def test_register_no_kwargs_error(self):
registry = CheckRegistry()
- msg = 'Check functions must accept keyword arguments (**kwargs).'
+ msg = "Check functions must accept keyword arguments (**kwargs)."
with self.assertRaisesMessage(TypeError, msg):
+
@registry.register
def no_kwargs(app_configs, databases):
pass
@@ -80,18 +81,17 @@ class SystemCheckFrameworkTests(SimpleTestCase):
@registry.register
def return_non_iterable(**kwargs):
- return Error('Message')
+ return Error("Message")
msg = (
- 'The function %r did not return a list. All functions registered '
- 'with the checks registry must return a list.' % return_non_iterable
+ "The function %r did not return a list. All functions registered "
+ "with the checks registry must return a list." % return_non_iterable
)
with self.assertRaisesMessage(TypeError, msg):
registry.run_checks()
class MessageTests(SimpleTestCase):
-
def test_printing(self):
e = Error("Message", hint="Hint", obj=DummyObj())
expected = "obj: Message\n\tHINT: Hint"
@@ -113,7 +113,7 @@ class MessageTests(SimpleTestCase):
self.assertEqual(str(e), expected)
def test_printing_field_error(self):
- field = SimpleModel._meta.get_field('field')
+ field = SimpleModel._meta.get_field("field")
e = Error("Error", obj=field)
expected = "check_framework.SimpleModel.field: Error"
self.assertEqual(str(e), expected)
@@ -145,12 +145,12 @@ class MessageTests(SimpleTestCase):
def test_not_equal_to_non_check(self):
e = Error("Error", obj=DummyObj())
- self.assertNotEqual(e, 'a string')
+ self.assertNotEqual(e, "a string")
def test_invalid_level(self):
- msg = 'The first argument should be level.'
+ msg = "The first argument should be level."
with self.assertRaisesMessage(TypeError, msg):
- CheckMessage('ERROR', 'Message')
+ CheckMessage("ERROR", "Message")
def simple_system_check(**kwargs):
@@ -160,22 +160,21 @@ def simple_system_check(**kwargs):
def tagged_system_check(**kwargs):
tagged_system_check.kwargs = kwargs
- return [checks.Warning('System Check')]
+ return [checks.Warning("System Check")]
-tagged_system_check.tags = ['simpletag']
+tagged_system_check.tags = ["simpletag"]
def deployment_system_check(**kwargs):
deployment_system_check.kwargs = kwargs
- return [checks.Warning('Deployment Check')]
+ return [checks.Warning("Deployment Check")]
-deployment_system_check.tags = ['deploymenttag']
+deployment_system_check.tags = ["deploymenttag"]
class CheckCommandTests(SimpleTestCase):
-
def setUp(self):
simple_system_check.kwargs = None
tagged_system_check.kwargs = None
@@ -187,77 +186,96 @@ class CheckCommandTests(SimpleTestCase):
@override_system_checks([simple_system_check, tagged_system_check])
def test_simple_call(self):
- call_command('check')
- self.assertEqual(simple_system_check.kwargs, {'app_configs': None, 'databases': None})
- self.assertEqual(tagged_system_check.kwargs, {'app_configs': None, 'databases': None})
+ call_command("check")
+ self.assertEqual(
+ simple_system_check.kwargs, {"app_configs": None, "databases": None}
+ )
+ self.assertEqual(
+ tagged_system_check.kwargs, {"app_configs": None, "databases": None}
+ )
@override_system_checks([simple_system_check, tagged_system_check])
def test_given_app(self):
- call_command('check', 'auth', 'admin')
- auth_config = apps.get_app_config('auth')
- admin_config = apps.get_app_config('admin')
- self.assertEqual(simple_system_check.kwargs, {'app_configs': [auth_config, admin_config], 'databases': None})
- self.assertEqual(tagged_system_check.kwargs, {'app_configs': [auth_config, admin_config], 'databases': None})
+ call_command("check", "auth", "admin")
+ auth_config = apps.get_app_config("auth")
+ admin_config = apps.get_app_config("admin")
+ self.assertEqual(
+ simple_system_check.kwargs,
+ {"app_configs": [auth_config, admin_config], "databases": None},
+ )
+ self.assertEqual(
+ tagged_system_check.kwargs,
+ {"app_configs": [auth_config, admin_config], "databases": None},
+ )
@override_system_checks([simple_system_check, tagged_system_check])
def test_given_tag(self):
- call_command('check', tags=['simpletag'])
+ call_command("check", tags=["simpletag"])
self.assertIsNone(simple_system_check.kwargs)
- self.assertEqual(tagged_system_check.kwargs, {'app_configs': None, 'databases': None})
+ self.assertEqual(
+ tagged_system_check.kwargs, {"app_configs": None, "databases": None}
+ )
@override_system_checks([simple_system_check, tagged_system_check])
def test_invalid_tag(self):
msg = 'There is no system check with the "missingtag" tag.'
with self.assertRaisesMessage(CommandError, msg):
- call_command('check', tags=['missingtag'])
+ call_command("check", tags=["missingtag"])
@override_system_checks([simple_system_check])
def test_list_tags_empty(self):
- call_command('check', list_tags=True)
- self.assertEqual('\n', sys.stdout.getvalue())
+ call_command("check", list_tags=True)
+ self.assertEqual("\n", sys.stdout.getvalue())
@override_system_checks([tagged_system_check])
def test_list_tags(self):
- call_command('check', list_tags=True)
- self.assertEqual('simpletag\n', sys.stdout.getvalue())
+ call_command("check", list_tags=True)
+ self.assertEqual("simpletag\n", sys.stdout.getvalue())
- @override_system_checks([tagged_system_check], deployment_checks=[deployment_system_check])
+ @override_system_checks(
+ [tagged_system_check], deployment_checks=[deployment_system_check]
+ )
def test_list_deployment_check_omitted(self):
- call_command('check', list_tags=True)
- self.assertEqual('simpletag\n', sys.stdout.getvalue())
+ call_command("check", list_tags=True)
+ self.assertEqual("simpletag\n", sys.stdout.getvalue())
- @override_system_checks([tagged_system_check], deployment_checks=[deployment_system_check])
+ @override_system_checks(
+ [tagged_system_check], deployment_checks=[deployment_system_check]
+ )
def test_list_deployment_check_included(self):
- call_command('check', deploy=True, list_tags=True)
- self.assertEqual('deploymenttag\nsimpletag\n', sys.stdout.getvalue())
+ call_command("check", deploy=True, list_tags=True)
+ self.assertEqual("deploymenttag\nsimpletag\n", sys.stdout.getvalue())
- @override_system_checks([tagged_system_check], deployment_checks=[deployment_system_check])
+ @override_system_checks(
+ [tagged_system_check], deployment_checks=[deployment_system_check]
+ )
def test_tags_deployment_check_omitted(self):
msg = 'There is no system check with the "deploymenttag" tag.'
with self.assertRaisesMessage(CommandError, msg):
- call_command('check', tags=['deploymenttag'])
+ call_command("check", tags=["deploymenttag"])
- @override_system_checks([tagged_system_check], deployment_checks=[deployment_system_check])
+ @override_system_checks(
+ [tagged_system_check], deployment_checks=[deployment_system_check]
+ )
def test_tags_deployment_check_included(self):
- call_command('check', deploy=True, tags=['deploymenttag'])
- self.assertIn('Deployment Check', sys.stderr.getvalue())
+ call_command("check", deploy=True, tags=["deploymenttag"])
+ self.assertIn("Deployment Check", sys.stderr.getvalue())
@override_system_checks([tagged_system_check])
def test_fail_level(self):
with self.assertRaises(CommandError):
- call_command('check', fail_level='WARNING')
+ call_command("check", fail_level="WARNING")
def custom_error_system_check(app_configs, **kwargs):
- return [Error('Error', id='myerrorcheck.E001')]
+ return [Error("Error", id="myerrorcheck.E001")]
def custom_warning_system_check(app_configs, **kwargs):
- return [Warning('Warning', id='mywarningcheck.E001')]
+ return [Warning("Warning", id="mywarningcheck.E001")]
class SilencingCheckTests(SimpleTestCase):
-
def setUp(self):
self.old_stdout, self.old_stderr = sys.stdout, sys.stderr
self.stdout, self.stderr = StringIO(), StringIO()
@@ -266,27 +284,31 @@ class SilencingCheckTests(SimpleTestCase):
def tearDown(self):
sys.stdout, sys.stderr = self.old_stdout, self.old_stderr
- @override_settings(SILENCED_SYSTEM_CHECKS=['myerrorcheck.E001'])
+ @override_settings(SILENCED_SYSTEM_CHECKS=["myerrorcheck.E001"])
@override_system_checks([custom_error_system_check])
def test_silenced_error(self):
out = StringIO()
err = StringIO()
- call_command('check', stdout=out, stderr=err)
- self.assertEqual(out.getvalue(), 'System check identified no issues (1 silenced).\n')
- self.assertEqual(err.getvalue(), '')
+ call_command("check", stdout=out, stderr=err)
+ self.assertEqual(
+ out.getvalue(), "System check identified no issues (1 silenced).\n"
+ )
+ self.assertEqual(err.getvalue(), "")
- @override_settings(SILENCED_SYSTEM_CHECKS=['mywarningcheck.E001'])
+ @override_settings(SILENCED_SYSTEM_CHECKS=["mywarningcheck.E001"])
@override_system_checks([custom_warning_system_check])
def test_silenced_warning(self):
out = StringIO()
err = StringIO()
- call_command('check', stdout=out, stderr=err)
- self.assertEqual(out.getvalue(), 'System check identified no issues (1 silenced).\n')
- self.assertEqual(err.getvalue(), '')
+ call_command("check", stdout=out, stderr=err)
+ self.assertEqual(
+ out.getvalue(), "System check identified no issues (1 silenced).\n"
+ )
+ self.assertEqual(err.getvalue(), "")
class CheckFrameworkReservedNamesTests(SimpleTestCase):
- @isolate_apps('check_framework', kwarg_name='apps')
+ @isolate_apps("check_framework", kwarg_name="apps")
@override_system_checks([checks.model_checks.check_all_models])
def test_model_check_method_not_shadowed(self, apps):
class ModelWithAttributeCalledCheck(models.Model):
@@ -299,11 +321,13 @@ class CheckFrameworkReservedNamesTests(SimpleTestCase):
pass
class ModelWithDescriptorCalledCheck(models.Model):
- check = models.ForeignKey(ModelWithRelatedManagerCalledCheck, models.CASCADE)
+ check = models.ForeignKey(
+ ModelWithRelatedManagerCalledCheck, models.CASCADE
+ )
article = models.ForeignKey(
ModelWithRelatedManagerCalledCheck,
models.CASCADE,
- related_name='check',
+ related_name="check",
)
errors = checks.run_checks(app_configs=apps.get_app_configs())
@@ -312,25 +336,26 @@ class CheckFrameworkReservedNamesTests(SimpleTestCase):
"The 'ModelWithAttributeCalledCheck.check()' class method is "
"currently overridden by 42.",
obj=ModelWithAttributeCalledCheck,
- id='models.E020'
+ id="models.E020",
),
Error(
"The 'ModelWithFieldCalledCheck.check()' class method is "
"currently overridden by %r." % ModelWithFieldCalledCheck.check,
obj=ModelWithFieldCalledCheck,
- id='models.E020'
+ id="models.E020",
),
Error(
"The 'ModelWithRelatedManagerCalledCheck.check()' class method is "
- "currently overridden by %r." % ModelWithRelatedManagerCalledCheck.check,
+ "currently overridden by %r."
+ % ModelWithRelatedManagerCalledCheck.check,
obj=ModelWithRelatedManagerCalledCheck,
- id='models.E020'
+ id="models.E020",
),
Error(
"The 'ModelWithDescriptorCalledCheck.check()' class method is "
"currently overridden by %r." % ModelWithDescriptorCalledCheck.check,
obj=ModelWithDescriptorCalledCheck,
- id='models.E020'
+ id="models.E020",
),
]
self.assertEqual(errors, expected)
diff --git a/tests/check_framework/urls/bad_error_handlers_invalid_path.py b/tests/check_framework/urls/bad_error_handlers_invalid_path.py
index 77e0c639e0..9b42900703 100644
--- a/tests/check_framework/urls/bad_error_handlers_invalid_path.py
+++ b/tests/check_framework/urls/bad_error_handlers_invalid_path.py
@@ -1,6 +1,6 @@
urlpatterns = []
-handler400 = 'django.views.bad_handler'
-handler403 = 'django.invalid_module.bad_handler'
-handler404 = 'invalid_module.bad_handler'
-handler500 = 'django'
+handler400 = "django.views.bad_handler"
+handler403 = "django.invalid_module.bad_handler"
+handler404 = "invalid_module.bad_handler"
+handler500 = "django"
diff --git a/tests/check_framework/urls/bad_function_based_error_handlers.py b/tests/check_framework/urls/bad_function_based_error_handlers.py
index d639d707df..518d2d4734 100644
--- a/tests/check_framework/urls/bad_function_based_error_handlers.py
+++ b/tests/check_framework/urls/bad_function_based_error_handlers.py
@@ -1,9 +1,9 @@
urlpatterns = []
-handler400 = __name__ + '.bad_handler'
-handler403 = __name__ + '.bad_handler'
-handler404 = __name__ + '.bad_handler'
-handler500 = __name__ + '.bad_handler'
+handler400 = __name__ + ".bad_handler"
+handler403 = __name__ + ".bad_handler"
+handler404 = __name__ + ".bad_handler"
+handler500 = __name__ + ".bad_handler"
def bad_handler():
diff --git a/tests/check_framework/urls/beginning_with_slash.py b/tests/check_framework/urls/beginning_with_slash.py
index bd4e29d8f1..ce6c145512 100644
--- a/tests/check_framework/urls/beginning_with_slash.py
+++ b/tests/check_framework/urls/beginning_with_slash.py
@@ -1,6 +1,6 @@
from django.urls import path, re_path
urlpatterns = [
- path('/path-starting-with-slash/', lambda x: x),
- re_path(r'/url-starting-with-slash/$', lambda x: x),
+ path("/path-starting-with-slash/", lambda x: x),
+ re_path(r"/url-starting-with-slash/$", lambda x: x),
]
diff --git a/tests/check_framework/urls/cbv_as_view.py b/tests/check_framework/urls/cbv_as_view.py
index 932a2bfcc9..3a478afb94 100644
--- a/tests/check_framework/urls/cbv_as_view.py
+++ b/tests/check_framework/urls/cbv_as_view.py
@@ -13,7 +13,7 @@ class EmptyCallableView:
urlpatterns = [
- path('missing_as_view', EmptyCBV),
- path('has_as_view', EmptyCBV.as_view()),
- path('callable_class', EmptyCallableView()),
+ path("missing_as_view", EmptyCBV),
+ path("has_as_view", EmptyCBV.as_view()),
+ path("callable_class", EmptyCallableView()),
]
diff --git a/tests/check_framework/urls/contains_tuple.py b/tests/check_framework/urls/contains_tuple.py
index 56aa3ea364..9fc58224a2 100644
--- a/tests/check_framework/urls/contains_tuple.py
+++ b/tests/check_framework/urls/contains_tuple.py
@@ -1,3 +1,3 @@
urlpatterns = [
- (r'^tuple/$', lambda x: x),
+ (r"^tuple/$", lambda x: x),
]
diff --git a/tests/check_framework/urls/good_function_based_error_handlers.py b/tests/check_framework/urls/good_function_based_error_handlers.py
index 69bea650f7..2479b253eb 100644
--- a/tests/check_framework/urls/good_function_based_error_handlers.py
+++ b/tests/check_framework/urls/good_function_based_error_handlers.py
@@ -1,10 +1,10 @@
urlpatterns = []
-handler400 = __name__ + '.good_handler'
-handler403 = __name__ + '.good_handler'
-handler404 = __name__ + '.good_handler'
-handler500 = __name__ + '.good_handler'
+handler400 = __name__ + ".good_handler"
+handler403 = __name__ + ".good_handler"
+handler404 = __name__ + ".good_handler"
+handler500 = __name__ + ".good_handler"
-def good_handler(request, exception=None, foo='bar'):
+def good_handler(request, exception=None, foo="bar"):
pass
diff --git a/tests/check_framework/urls/include_contains_tuple.py b/tests/check_framework/urls/include_contains_tuple.py
index 02717a743c..876d9aab1d 100644
--- a/tests/check_framework/urls/include_contains_tuple.py
+++ b/tests/check_framework/urls/include_contains_tuple.py
@@ -1,5 +1,5 @@
from django.urls import include, path
urlpatterns = [
- path('', include([(r'^tuple/$', lambda x: x)])),
+ path("", include([(r"^tuple/$", lambda x: x)])),
]
diff --git a/tests/check_framework/urls/include_with_dollar.py b/tests/check_framework/urls/include_with_dollar.py
index ce921bbec5..dc92d594bf 100644
--- a/tests/check_framework/urls/include_with_dollar.py
+++ b/tests/check_framework/urls/include_with_dollar.py
@@ -1,5 +1,5 @@
from django.urls import include, re_path
urlpatterns = [
- re_path('^include-with-dollar$', include([])),
+ re_path("^include-with-dollar$", include([])),
]
diff --git a/tests/check_framework/urls/name_with_colon.py b/tests/check_framework/urls/name_with_colon.py
index 273c99324c..8cca009cd5 100644
--- a/tests/check_framework/urls/name_with_colon.py
+++ b/tests/check_framework/urls/name_with_colon.py
@@ -1,5 +1,5 @@
from django.urls import re_path
urlpatterns = [
- re_path('^$', lambda x: x, name='name_with:colon'),
+ re_path("^$", lambda x: x, name="name_with:colon"),
]
diff --git a/tests/check_framework/urls/no_warnings.py b/tests/check_framework/urls/no_warnings.py
index e1846fb884..d100f04590 100644
--- a/tests/check_framework/urls/no_warnings.py
+++ b/tests/check_framework/urls/no_warnings.py
@@ -1,9 +1,14 @@
from django.urls import include, path, re_path
urlpatterns = [
- path('foo/', lambda x: x, name='foo'),
+ path("foo/", lambda x: x, name="foo"),
# This dollar is ok as it is escaped
- re_path(r'^\$', include([
- path('bar/', lambda x: x, name='bar'),
- ])),
+ re_path(
+ r"^\$",
+ include(
+ [
+ path("bar/", lambda x: x, name="bar"),
+ ]
+ ),
+ ),
]
diff --git a/tests/check_framework/urls/no_warnings_i18n.py b/tests/check_framework/urls/no_warnings_i18n.py
index 37da78f29d..4a125a24e6 100644
--- a/tests/check_framework/urls/no_warnings_i18n.py
+++ b/tests/check_framework/urls/no_warnings_i18n.py
@@ -3,5 +3,5 @@ from django.urls import path
from django.utils.translation import gettext_lazy as _
urlpatterns = i18n_patterns(
- path(_('translated/'), lambda x: x, name='i18n_prefixed'),
+ path(_("translated/"), lambda x: x, name="i18n_prefixed"),
)
diff --git a/tests/check_framework/urls/non_unique_namespaces.py b/tests/check_framework/urls/non_unique_namespaces.py
index f036797cb7..23f7f1b61d 100644
--- a/tests/check_framework/urls/non_unique_namespaces.py
+++ b/tests/check_framework/urls/non_unique_namespaces.py
@@ -1,13 +1,16 @@
from django.urls import include, path
-common_url_patterns = ([
- path('app-ns1/', include([])),
- path('app-url/', include([])),
-], 'app-ns1')
+common_url_patterns = (
+ [
+ path("app-ns1/", include([])),
+ path("app-url/", include([])),
+ ],
+ "app-ns1",
+)
urlpatterns = [
- path('app-ns1-0/', include(common_url_patterns)),
- path('app-ns1-1/', include(common_url_patterns)),
- path('app-some-url/', include(([], 'app'), namespace='app-1')),
- path('app-some-url-2/', include(([], 'app'), namespace='app-1'))
+ path("app-ns1-0/", include(common_url_patterns)),
+ path("app-ns1-1/", include(common_url_patterns)),
+ path("app-some-url/", include(([], "app"), namespace="app-1")),
+ path("app-some-url-2/", include(([], "app"), namespace="app-1")),
]
diff --git a/tests/check_framework/urls/path_compatibility/beginning_with_caret.py b/tests/check_framework/urls/path_compatibility/beginning_with_caret.py
index 7e3e9c8707..27c96246b2 100644
--- a/tests/check_framework/urls/path_compatibility/beginning_with_caret.py
+++ b/tests/check_framework/urls/path_compatibility/beginning_with_caret.py
@@ -1,5 +1,5 @@
from django.urls import path
urlpatterns = [
- path('^beginning-with-caret', lambda x: x),
+ path("^beginning-with-caret", lambda x: x),
]
diff --git a/tests/check_framework/urls/path_compatibility/contains_re_named_group.py b/tests/check_framework/urls/path_compatibility/contains_re_named_group.py
index bd849509f5..86897a4a48 100644
--- a/tests/check_framework/urls/path_compatibility/contains_re_named_group.py
+++ b/tests/check_framework/urls/path_compatibility/contains_re_named_group.py
@@ -1,5 +1,5 @@
from django.urls import path
urlpatterns = [
- path(r'(?P<named_group>\d+)', lambda x: x),
+ path(r"(?P<named_group>\d+)", lambda x: x),
]
diff --git a/tests/check_framework/urls/path_compatibility/ending_with_dollar.py b/tests/check_framework/urls/path_compatibility/ending_with_dollar.py
index 0ea82a1ba6..081cc6b008 100644
--- a/tests/check_framework/urls/path_compatibility/ending_with_dollar.py
+++ b/tests/check_framework/urls/path_compatibility/ending_with_dollar.py
@@ -1,5 +1,5 @@
from django.urls import path
urlpatterns = [
- path('ending-with-dollar$', lambda x: x),
+ path("ending-with-dollar$", lambda x: x),
]
diff --git a/tests/check_framework/urls/unique_namespaces.py b/tests/check_framework/urls/unique_namespaces.py
index 09296648fd..ee6cc5fd3e 100644
--- a/tests/check_framework/urls/unique_namespaces.py
+++ b/tests/check_framework/urls/unique_namespaces.py
@@ -1,20 +1,26 @@
from django.urls import include, path
-common_url_patterns = ([
- path('app-ns1/', include([])),
- path('app-url/', include([])),
-], 'common')
+common_url_patterns = (
+ [
+ path("app-ns1/", include([])),
+ path("app-url/", include([])),
+ ],
+ "common",
+)
-nested_url_patterns = ([
- path('common/', include(common_url_patterns, namespace='nested')),
-], 'nested')
+nested_url_patterns = (
+ [
+ path("common/", include(common_url_patterns, namespace="nested")),
+ ],
+ "nested",
+)
urlpatterns = [
- path('app-ns1-0/', include(common_url_patterns, namespace='app-include-1')),
- path('app-ns1-1/', include(common_url_patterns, namespace='app-include-2')),
+ path("app-ns1-0/", include(common_url_patterns, namespace="app-include-1")),
+ path("app-ns1-1/", include(common_url_patterns, namespace="app-include-2")),
# 'nested' is included twice but namespaced by nested-1 and nested-2.
- path('app-ns1-2/', include(nested_url_patterns, namespace='nested-1')),
- path('app-ns1-3/', include(nested_url_patterns, namespace='nested-2')),
+ path("app-ns1-2/", include(nested_url_patterns, namespace="nested-1")),
+ path("app-ns1-3/", include(nested_url_patterns, namespace="nested-2")),
# namespaced URLs inside non-namespaced URLs.
- path('app-ns1-4/', include([path('abc/', include(common_url_patterns))])),
+ path("app-ns1-4/", include([path("abc/", include(common_url_patterns))])),
]
diff --git a/tests/check_framework/urls/warning_in_include.py b/tests/check_framework/urls/warning_in_include.py
index 8ec846be1e..6978c13210 100644
--- a/tests/check_framework/urls/warning_in_include.py
+++ b/tests/check_framework/urls/warning_in_include.py
@@ -1,7 +1,12 @@
from django.urls import include, path, re_path
urlpatterns = [
- path('', include([
- re_path('^include-with-dollar$', include([])),
- ])),
+ path(
+ "",
+ include(
+ [
+ re_path("^include-with-dollar$", include([])),
+ ]
+ ),
+ ),
]