test_online_utils.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. from unittest.mock import Mock
  2. from django.contrib.auth import get_user_model
  3. from misago.acl.testutils import override_acl
  4. from misago.users.online.utils import get_user_status
  5. from misago.users.testutils import AuthenticatedUserTestCase
  6. UserModel = get_user_model()
  7. class GetUserStatusTests(AuthenticatedUserTestCase):
  8. def setUp(self):
  9. super().setUp()
  10. self.other_user = UserModel.objects.create_user('Tyrael', 't123@test.com', 'pass123')
  11. def test_user_hiding_presence(self):
  12. """get_user_status has no showstopper for hidden user"""
  13. self.other_user.is_hiding_presence = True
  14. self.other_user.save()
  15. request = Mock(user=self.user, cache_versions={"bans": "abcdfghi"})
  16. get_user_status(request, self.other_user)
  17. def test_user_visible_hidden_presence(self):
  18. """get_user_status has no showstopper forvisible hidden user"""
  19. self.other_user.is_hiding_presence = True
  20. self.other_user.save()
  21. override_acl(self.user, {
  22. 'can_see_hidden_users': True,
  23. })
  24. request = Mock(user=self.user, cache_versions={"bans": "abcdfghi"})
  25. get_user_status(request, self.other_user)
  26. def test_user_not_hiding_presence(self):
  27. """get_user_status has no showstoppers for non-hidden user"""
  28. request = Mock(user=self.user, cache_versions={"bans": "abcdfghi"})
  29. get_user_status(request, self.other_user)