test_getting_user_status.py 1.5 KB

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