Fixed #23488 -- Added AnonymousUser.get_username().

This commit is contained in:
Damien Baty 2014-09-17 19:56:56 +02:00 committed by Tim Graham
parent 8facb02faf
commit ad491ecc6e
3 changed files with 17 additions and 0 deletions

View File

@ -509,3 +509,6 @@ class AnonymousUser(object):
def is_authenticated(self): def is_authenticated(self):
return False return False
def get_username(self):
return self.username

View File

@ -41,6 +41,9 @@ class BasicTestCase(TestCase):
u.set_password(None) u.set_password(None)
self.assertFalse(u.has_usable_password()) self.assertFalse(u.has_usable_password())
# Check username getter
self.assertEqual(u.get_username(), 'testuser')
# Check authentication/permissions # Check authentication/permissions
self.assertTrue(u.is_authenticated()) self.assertTrue(u.is_authenticated())
self.assertFalse(u.is_staff) self.assertFalse(u.is_staff)
@ -66,6 +69,8 @@ class BasicTestCase(TestCase):
"Check the properties of the anonymous user" "Check the properties of the anonymous user"
a = AnonymousUser() a = AnonymousUser()
self.assertEqual(a.pk, None) self.assertEqual(a.pk, None)
self.assertEqual(a.username, '')
self.assertEqual(a.get_username(), '')
self.assertFalse(a.is_authenticated()) self.assertFalse(a.is_authenticated())
self.assertFalse(a.is_staff) self.assertFalse(a.is_staff)
self.assertFalse(a.is_active) self.assertFalse(a.is_active)

View File

@ -269,6 +269,10 @@ Anonymous users
these differences: these differences:
* :ref:`id <automatic-primary-key-fields>` is always ``None``. * :ref:`id <automatic-primary-key-fields>` is always ``None``.
* :attr:`~django.contrib.auth.models.User.username` is always the empty
string.
* :meth:`~django.contrib.auth.models.User.get_username()` always returns
the empty string.
* :attr:`~django.contrib.auth.models.User.is_staff` and * :attr:`~django.contrib.auth.models.User.is_staff` and
:attr:`~django.contrib.auth.models.User.is_superuser` are always :attr:`~django.contrib.auth.models.User.is_superuser` are always
``False``. ``False``.
@ -285,6 +289,11 @@ Anonymous users
:meth:`~django.db.models.Model.save` and :meth:`~django.db.models.Model.save` and
:meth:`~django.db.models.Model.delete()` raise :exc:`NotImplementedError`. :meth:`~django.db.models.Model.delete()` raise :exc:`NotImplementedError`.
.. versionadded:: 1.8
``AnonymousUser.get_username()`` has been added to
better mirror :class:`django.contrib.auth.models.User`.
In practice, you probably won't need to use In practice, you probably won't need to use
:class:`~django.contrib.auth.models.AnonymousUser` objects on your own, but :class:`~django.contrib.auth.models.AnonymousUser` objects on your own, but
they're used by Web requests, as explained in the next section. they're used by Web requests, as explained in the next section.