mirror of https://github.com/zulip/zulip.git
55 lines
1.9 KiB
Python
55 lines
1.9 KiB
Python
|
from unittest import mock
|
||
|
|
||
|
from django.utils.timezone import now as timezone_now
|
||
|
|
||
|
from zerver.lib.test_classes import ZulipTestCase
|
||
|
from zerver.lib.test_helpers import queries_captured
|
||
|
from zerver.models import Client, UserActivity, UserProfile, flush_per_request_caches
|
||
|
|
||
|
|
||
|
class ActivityTest(ZulipTestCase):
|
||
|
@mock.patch("stripe.Customer.list", return_value=[])
|
||
|
def test_activity(self, unused_mock: mock.Mock) -> None:
|
||
|
self.login("hamlet")
|
||
|
client, _ = Client.objects.get_or_create(name="website")
|
||
|
query = "/json/messages/flags"
|
||
|
last_visit = timezone_now()
|
||
|
count = 150
|
||
|
for activity_user_profile in UserProfile.objects.all():
|
||
|
UserActivity.objects.get_or_create(
|
||
|
user_profile=activity_user_profile,
|
||
|
client=client,
|
||
|
query=query,
|
||
|
count=count,
|
||
|
last_visit=last_visit,
|
||
|
)
|
||
|
|
||
|
# Fails when not staff
|
||
|
result = self.client_get("/activity")
|
||
|
self.assertEqual(result.status_code, 302)
|
||
|
|
||
|
user_profile = self.example_user("hamlet")
|
||
|
user_profile.is_staff = True
|
||
|
user_profile.save(update_fields=["is_staff"])
|
||
|
|
||
|
flush_per_request_caches()
|
||
|
with queries_captured() as queries:
|
||
|
result = self.client_get("/activity")
|
||
|
self.assertEqual(result.status_code, 200)
|
||
|
|
||
|
self.assert_length(queries, 19)
|
||
|
|
||
|
flush_per_request_caches()
|
||
|
with queries_captured() as queries:
|
||
|
result = self.client_get("/realm_activity/zulip/")
|
||
|
self.assertEqual(result.status_code, 200)
|
||
|
|
||
|
self.assert_length(queries, 8)
|
||
|
|
||
|
flush_per_request_caches()
|
||
|
with queries_captured() as queries:
|
||
|
result = self.client_get("/user_activity/iago@zulip.com/")
|
||
|
self.assertEqual(result.status_code, 200)
|
||
|
|
||
|
self.assert_length(queries, 4)
|