diff --git a/analytics/tests/test_counts.py b/analytics/tests/test_counts.py index f801b75e02..18f2104cfe 100644 --- a/analytics/tests/test_counts.py +++ b/analytics/tests/test_counts.py @@ -1,6 +1,7 @@ from datetime import datetime, timedelta from typing import Any, Dict, List, Optional, Tuple, Type +import mock import ujson from django.apps import apps from django.db import models @@ -21,6 +22,7 @@ from zerver.lib.actions import do_activate_user, do_create_user, \ do_deactivate_user, do_reactivate_user, update_user_activity_interval, \ do_invite_users, do_revoke_user_invite, do_resend_user_invite_email, \ InvitationError +from zerver.lib.create_user import create_user from zerver.lib.timestamp import TimezoneNotUTCException, floor_to_day from zerver.lib.topic import DB_TOPIC_NAME from zerver.models import Client, Huddle, Message, Realm, \ @@ -50,16 +52,21 @@ class AnalyticsTestCase(TestCase): 'date_joined': self.TIME_LAST_HOUR, 'full_name': 'full_name', 'short_name': 'short_name', - 'pointer': -1, - 'last_pointer_updater': 'seems unused?', - 'realm': self.default_realm, - 'api_key': '42'} + 'is_active': True, + 'is_bot': False, + 'realm': self.default_realm} for key, value in defaults.items(): kwargs[key] = kwargs.get(key, value) kwargs['delivery_email'] = kwargs['email'] - user_profile = UserProfile.objects.create(**kwargs) - # TODO: Make this pass user_profile.full_clean() - return user_profile + with mock.patch("zerver.lib.create_user.timezone_now", return_value=kwargs['date_joined']): + pass_kwargs = {} # type: Dict[str, Any] + if kwargs['is_bot']: + pass_kwargs['bot_type'] = UserProfile.DEFAULT_BOT + pass_kwargs['bot_owner'] = None + return create_user(kwargs['email'], 'password', kwargs['realm'], + active=kwargs['is_active'], + full_name=kwargs['full_name'], short_name=kwargs['short_name'], + is_realm_admin=True, **pass_kwargs) def create_stream_with_recipient(self, **kwargs: Any) -> Tuple[Stream, Recipient]: self.name_counter += 1 @@ -362,8 +369,8 @@ class TestCountStats(AnalyticsTestCase): bot = self.create_user(is_bot=True) human1 = self.create_user() human2 = self.create_user() - recipient_human1 = Recipient.objects.create(type_id=human1.id, - type=Recipient.PERSONAL) + recipient_human1 = Recipient.objects.get(type_id=human1.id, + type=Recipient.PERSONAL) recipient_stream = self.create_stream_with_recipient()[1] recipient_huddle = self.create_huddle_with_recipient()[1] @@ -417,9 +424,9 @@ class TestCountStats(AnalyticsTestCase): self.create_message(user2, recipient_huddle2) # private messages - recipient_user1 = Recipient.objects.create(type_id=user1.id, type=Recipient.PERSONAL) - recipient_user2 = Recipient.objects.create(type_id=user2.id, type=Recipient.PERSONAL) - recipient_user3 = Recipient.objects.create(type_id=user3.id, type=Recipient.PERSONAL) + recipient_user1 = Recipient.objects.get(type_id=user1.id, type=Recipient.PERSONAL) + recipient_user2 = Recipient.objects.get(type_id=user2.id, type=Recipient.PERSONAL) + recipient_user3 = Recipient.objects.get(type_id=user3.id, type=Recipient.PERSONAL) self.create_message(user1, recipient_user2) self.create_message(user2, recipient_user1) self.create_message(user3, recipient_user3) @@ -451,7 +458,7 @@ class TestCountStats(AnalyticsTestCase): self.current_property = stat.property user = self.create_user(id=1000) - user_recipient = Recipient.objects.create(type_id=user.id, type=Recipient.PERSONAL) + user_recipient = Recipient.objects.get(type_id=user.id, type=Recipient.PERSONAL) stream_recipient = self.create_stream_with_recipient(id=1000)[1] huddle_recipient = self.create_huddle_with_recipient(id=1000)[1] @@ -471,7 +478,7 @@ class TestCountStats(AnalyticsTestCase): user1 = self.create_user(is_bot=True) user2 = self.create_user() - recipient_user2 = Recipient.objects.create(type_id=user2.id, type=Recipient.PERSONAL) + recipient_user2 = Recipient.objects.get(type_id=user2.id, type=Recipient.PERSONAL) recipient_stream = self.create_stream_with_recipient()[1] recipient_huddle = self.create_huddle_with_recipient()[1] @@ -507,7 +514,7 @@ class TestCountStats(AnalyticsTestCase): bot = self.create_user(is_bot=True) human1 = self.create_user() human2 = self.create_user() - recipient_human1 = Recipient.objects.create(type_id=human1.id, type=Recipient.PERSONAL) + recipient_human1 = Recipient.objects.get(type_id=human1.id, type=Recipient.PERSONAL) stream1, recipient_stream1 = self.create_stream_with_recipient() stream2, recipient_stream2 = self.create_stream_with_recipient()