test_getting_user_status.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. from unittest.mock import Mock
  2. from django.contrib.auth import get_user_model
  3. from misago.users.online.utils import get_user_status
  4. from misago.users.testutils import AuthenticatedUserTestCase
  5. User = get_user_model()
  6. class GetUserStatusTests(AuthenticatedUserTestCase):
  7. def setUp(self):
  8. super().setUp()
  9. self.other_user = User.objects.create_user("Tyrael", "t123@test.com", "pass123")
  10. def test_get_visible_user_status_returns_online(self):
  11. request = Mock(
  12. user=self.user,
  13. user_acl={"can_see_hidden_users": False},
  14. cache_versions={"bans": "abcdefgh"},
  15. )
  16. assert get_user_status(request, self.other_user)["is_online"]
  17. def test_get_hidden_user_status_without_seeing_hidden_permission_returns_offline(
  18. self
  19. ):
  20. """get_user_status has no showstopper for hidden user"""
  21. self.other_user.is_hiding_presence = True
  22. self.other_user.save()
  23. request = Mock(
  24. user=self.user,
  25. user_acl={"can_see_hidden_users": False},
  26. cache_versions={"bans": "abcdefgh"},
  27. )
  28. assert get_user_status(request, self.other_user)["is_hidden"]
  29. def test_get_hidden_user_status_with_seeing_hidden_permission_returns_online_hidden(
  30. self
  31. ):
  32. self.other_user.is_hiding_presence = True
  33. self.other_user.save()
  34. request = Mock(
  35. user=self.user,
  36. user_acl={"can_see_hidden_users": True},
  37. cache_versions={"bans": "abcdefgh"},
  38. )
  39. assert get_user_status(request, self.other_user)["is_online_hidden"]