From 05cde4764da022ae80e9d7d97ef67c30e896c607 Mon Sep 17 00:00:00 2001 From: Lie Ryan Date: Mon, 11 Oct 2021 14:54:50 +1100 Subject: Fixed #33269 -- Made AnonymousUser/PermissionsMixin.has_perms() raise ValueError on string or non-iterable perm_list. --- tests/auth_tests/test_auth_backends.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'tests') diff --git a/tests/auth_tests/test_auth_backends.py b/tests/auth_tests/test_auth_backends.py index d01d0b6526..d1471466d7 100644 --- a/tests/auth_tests/test_auth_backends.py +++ b/tests/auth_tests/test_auth_backends.py @@ -53,6 +53,13 @@ class BaseBackendTest(TestCase): self.assertIs(self.user.has_perm('group_perm'), True) self.assertIs(self.user.has_perm('other_perm', TestObj()), False) + def test_has_perms_perm_list_invalid(self): + msg = 'perm_list must be an iterable of permissions.' + with self.assertRaisesMessage(ValueError, msg): + self.user.has_perms('user_perm') + with self.assertRaisesMessage(ValueError, msg): + self.user.has_perms(object()) + class CountingMD5PasswordHasher(MD5PasswordHasher): """Hasher that counts how many times it computes a hash.""" @@ -476,6 +483,13 @@ class AnonymousUserBackendTest(SimpleTestCase): self.assertIs(self.user1.has_perms(['anon'], TestObj()), True) self.assertIs(self.user1.has_perms(['anon', 'perm'], TestObj()), False) + def test_has_perms_perm_list_invalid(self): + msg = 'perm_list must be an iterable of permissions.' + with self.assertRaisesMessage(ValueError, msg): + self.user1.has_perms('perm') + with self.assertRaisesMessage(ValueError, msg): + self.user1.has_perms(object()) + def test_has_module_perms(self): self.assertIs(self.user1.has_module_perms("app1"), True) self.assertIs(self.user1.has_module_perms("app2"), False) -- cgit v1.3