diff options
| author | Sergey Yurchenko <urchenko88@gmail.com> | 2016-08-02 22:19:01 +0300 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2016-08-03 09:14:27 -0400 |
| commit | a8b8ef114dd01d9c1e71a620b732b9aac7b7da5c (patch) | |
| tree | 1289d859a72ca1d459c8b68fcc09aaeb6f64de4e | |
| parent | b00a3f17209789fd6036aa93194c04b05f51047a (diff) | |
[1.10.x] Fixed #26997 -- Fixed checks crash with empty Meta.default_permissions.
Backport of 4e64e3bb6e96a50b057bc1144fba3efdee7dfc10 from master
| -rw-r--r-- | django/contrib/auth/checks.py | 5 | ||||
| -rw-r--r-- | docs/releases/1.10.1.txt | 3 | ||||
| -rw-r--r-- | tests/auth_tests/test_checks.py | 7 |
3 files changed, 14 insertions, 1 deletions
diff --git a/django/contrib/auth/checks.py b/django/contrib/auth/checks.py index e7b5815cbd..27a28b5172 100644 --- a/django/contrib/auth/checks.py +++ b/django/contrib/auth/checks.py @@ -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)) diff --git a/docs/releases/1.10.1.txt b/docs/releases/1.10.1.txt index 97b616bc1d..66ff4707f7 100644 --- a/docs/releases/1.10.1.txt +++ b/docs/releases/1.10.1.txt @@ -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`). diff --git a/tests/auth_tests/test_checks.py b/tests/auth_tests/test_checks.py index 962444fb60..8dca3159d1 100644 --- a/tests/auth_tests/test_checks.py +++ b/tests/auth_tests/test_checks.py @@ -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()), []) |
