diff --git a/django/contrib/auth/context_processors.py b/django/contrib/auth/context_processors.py index c223971281..3dfd9177a9 100644 --- a/django/contrib/auth/context_processors.py +++ b/django/contrib/auth/context_processors.py @@ -25,6 +25,9 @@ class PermWrapper: def __init__(self, user): self.user = user + def __repr__(self): + return f'{self.__class__.__qualname__}({self.user!r})' + def __getitem__(self, app_label): return PermLookupDict(self.user, app_label) diff --git a/tests/auth_tests/test_context_processors.py b/tests/auth_tests/test_context_processors.py index e492050bcb..98e51a62d9 100644 --- a/tests/auth_tests/test_context_processors.py +++ b/tests/auth_tests/test_context_processors.py @@ -9,6 +9,9 @@ from .settings import AUTH_MIDDLEWARE, AUTH_TEMPLATES class MockUser: + def __repr__(self): + return 'MockUser()' + def has_module_perms(self, perm): return perm == 'mockapp' @@ -33,6 +36,10 @@ class PermWrapperTests(SimpleTestCase): self.eq_calls += 1 return False + def test_repr(self): + perms = PermWrapper(MockUser()) + self.assertEqual(repr(perms), 'PermWrapper(MockUser())') + def test_permwrapper_in(self): """ 'something' in PermWrapper works as expected.