Fixed #26997 -- Fixed checks crash with empty Meta.default_permissions.

This commit is contained in:
Sergey Yurchenko 2016-08-02 22:19:01 +03:00 committed by Tim Graham
parent f4b1f972dc
commit 4e64e3bb6e
3 changed files with 14 additions and 1 deletions

View File

@ -111,7 +111,10 @@ def check_models_permissions(app_configs=None, **kwargs):
opts = model._meta
builtin_permissions = dict(_get_builtin_permissions(opts))
# Check builtin permission name length.
max_builtin_permission_name_length = max(len(name) for name in builtin_permissions.values())
max_builtin_permission_name_length = (
max(len(name) for name in builtin_permissions.values())
if builtin_permissions else 0
)
if max_builtin_permission_name_length > permission_name_max_length:
verbose_name_max_length = (
permission_name_max_length - (max_builtin_permission_name_length - len(opts.verbose_name_raw))

View File

@ -17,3 +17,6 @@ Bugfixes
* Removed the broken ``BaseCommand.usage()`` method which was for
``optparse`` support (:ticket:`27000`).
* Fixed a checks framework crash with an empty ``Meta.default_permissions``
(:ticket:`26997`).

View File

@ -195,3 +195,10 @@ class ModelsPermissionsChecksTests(SimpleTestCase):
id='auth.E008',
),
])
def test_empty_default_permissions(self):
class Checked(models.Model):
class Meta:
default_permissions = ()
self.assertEqual(checks.run_checks(self.apps.get_app_configs()), [])