From aec57baef22222e8fca3a4cff690f03309e2e3ca Mon Sep 17 00:00:00 2001 From: Tim Abbott Date: Tue, 15 May 2018 18:52:18 -0700 Subject: [PATCH] test_presence: Add tests for various analytics pages. While maybe these don't all belong in this test file, the overall effect is that we now have quite good test coverage on analytics/views.py. It'd be nice to add some more assert statements for specific values being present in the pages, but since we're not really working on that part of the product, it's not a priority yet. --- zerver/tests/test_presence.py | 36 ++++++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/zerver/tests/test_presence.py b/zerver/tests/test_presence.py index db6ed4c0fc..ed220f0ca9 100644 --- a/zerver/tests/test_presence.py +++ b/zerver/tests/test_presence.py @@ -33,7 +33,8 @@ import datetime class ActivityTest(ZulipTestCase): def test_activity(self) -> None: - self.login(self.example_email("hamlet")) + user_profile = self.example_user("hamlet") + self.login(user_profile.email) client, _ = Client.objects.get_or_create(name='website') query = '/json/users/me/pointer' last_visit = timezone_now() @@ -46,11 +47,34 @@ class ActivityTest(ZulipTestCase): count=count, last_visit=last_visit ) + + # Fails when not staff + result = self.client_get('/activity') + self.assertEqual(result.status_code, 302) + + user_profile.is_staff = True + user_profile.save() + flush_per_request_caches() with queries_captured() as queries: - self.client_get('/activity') + result = self.client_get('/activity') + self.assertEqual(result.status_code, 200) - self.assert_length(queries, 4) + self.assert_length(queries, 13) + + 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, 9) + + 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, 5) class TestClientModel(ZulipTestCase): def test_client_stringification(self) -> None: @@ -240,6 +264,12 @@ class UserPresenceTests(ZulipTestCase): third_time - timedelta(seconds=100)).total_seconds(), 300) + # Now test /activity with actual data + user_profile.is_staff = True + user_profile.save() + result = self.client_get('/activity') + self.assertEqual(result.status_code, 200) + def test_filter_presence_idle_user_ids(self) -> None: user_profile = self.example_user("hamlet") from zerver.lib.actions import filter_presence_idle_user_ids