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.
This commit is contained in:
Tim Abbott
2018-05-15 18:52:18 -07:00
parent 276b78e952
commit aec57baef2

View File

@@ -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