mirror of https://github.com/zulip/zulip.git
test_presence: Add tests for seconds_usage_between.
This isn't widely used, but is a nice way to verify the logic further.
This commit is contained in:
parent
f2efa122a6
commit
00861b910d
|
@ -90,7 +90,6 @@ not_yet_fully_covered = {
|
||||||
# Low priority for coverage
|
# Low priority for coverage
|
||||||
'zerver/lib/ccache.py',
|
'zerver/lib/ccache.py',
|
||||||
'zerver/lib/generate_test_data.py',
|
'zerver/lib/generate_test_data.py',
|
||||||
'zerver/lib/statistics.py',
|
|
||||||
'zerver/lib/test_fixtures.py',
|
'zerver/lib/test_fixtures.py',
|
||||||
'zerver/lib/test_runner.py',
|
'zerver/lib/test_runner.py',
|
||||||
'zerver/lib/api_test_helpers.py',
|
'zerver/lib/api_test_helpers.py',
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from datetime import timedelta
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
from django.test import override_settings
|
from django.test import override_settings
|
||||||
from django.utils.timezone import now as timezone_now
|
from django.utils.timezone import now as timezone_now
|
||||||
|
@ -7,6 +8,7 @@ from mock import mock
|
||||||
|
|
||||||
from typing import Any, Dict
|
from typing import Any, Dict
|
||||||
from zerver.lib.actions import do_deactivate_user
|
from zerver.lib.actions import do_deactivate_user
|
||||||
|
from zerver.lib.statistics import seconds_usage_between
|
||||||
from zerver.lib.test_helpers import (
|
from zerver.lib.test_helpers import (
|
||||||
make_client,
|
make_client,
|
||||||
queries_captured,
|
queries_captured,
|
||||||
|
@ -177,8 +179,6 @@ class UserPresenceTests(ZulipTestCase):
|
||||||
user_profile = self.example_user("hamlet")
|
user_profile = self.example_user("hamlet")
|
||||||
self.login(self.example_email("hamlet"))
|
self.login(self.example_email("hamlet"))
|
||||||
self.assertEqual(UserActivityInterval.objects.filter(user_profile=user_profile).count(), 0)
|
self.assertEqual(UserActivityInterval.objects.filter(user_profile=user_profile).count(), 0)
|
||||||
from django.utils.timezone import now as timezone_now
|
|
||||||
from datetime import timedelta
|
|
||||||
time_zero = timezone_now().replace(microsecond=0)
|
time_zero = timezone_now().replace(microsecond=0)
|
||||||
with mock.patch('zerver.views.presence.timezone_now', return_value=time_zero):
|
with mock.patch('zerver.views.presence.timezone_now', return_value=time_zero):
|
||||||
result = self.client_post("/json/users/me/presence", {'status': 'active',
|
result = self.client_post("/json/users/me/presence", {'status': 'active',
|
||||||
|
@ -213,6 +213,33 @@ class UserPresenceTests(ZulipTestCase):
|
||||||
self.assertEqual(interval.start, third_time)
|
self.assertEqual(interval.start, third_time)
|
||||||
self.assertEqual(interval.end, third_time + UserActivityInterval.MIN_INTERVAL_LENGTH)
|
self.assertEqual(interval.end, third_time + UserActivityInterval.MIN_INTERVAL_LENGTH)
|
||||||
|
|
||||||
|
self.assertEqual(
|
||||||
|
seconds_usage_between(
|
||||||
|
user_profile, time_zero, third_time).total_seconds(),
|
||||||
|
1500)
|
||||||
|
self.assertEqual(
|
||||||
|
seconds_usage_between(
|
||||||
|
user_profile, time_zero, third_time+timedelta(seconds=10)).total_seconds(),
|
||||||
|
1510)
|
||||||
|
self.assertEqual(
|
||||||
|
seconds_usage_between(
|
||||||
|
user_profile, time_zero, third_time+timedelta(seconds=1000)).total_seconds(),
|
||||||
|
2400)
|
||||||
|
self.assertEqual(
|
||||||
|
seconds_usage_between(
|
||||||
|
user_profile, time_zero, third_time - timedelta(seconds=100)).total_seconds(),
|
||||||
|
1500)
|
||||||
|
self.assertEqual(
|
||||||
|
seconds_usage_between(
|
||||||
|
user_profile, time_zero + timedelta(seconds=100),
|
||||||
|
third_time - timedelta(seconds=100)).total_seconds(),
|
||||||
|
1400)
|
||||||
|
self.assertEqual(
|
||||||
|
seconds_usage_between(
|
||||||
|
user_profile, time_zero + timedelta(seconds=1200),
|
||||||
|
third_time - timedelta(seconds=100)).total_seconds(),
|
||||||
|
300)
|
||||||
|
|
||||||
def test_filter_presence_idle_user_ids(self) -> None:
|
def test_filter_presence_idle_user_ids(self) -> None:
|
||||||
user_profile = self.example_user("hamlet")
|
user_profile = self.example_user("hamlet")
|
||||||
from zerver.lib.actions import filter_presence_idle_user_ids
|
from zerver.lib.actions import filter_presence_idle_user_ids
|
||||||
|
|
Loading…
Reference in New Issue