test_counts: Remove custom user creation code.

Like the last commit, this avoids us needing to update this random
test class in the analytics subsystem when we adjust the UserProfile
model.
This commit is contained in:
Tim Abbott 2019-09-19 14:30:43 -07:00
parent aae610f65c
commit a352f2e10d
1 changed files with 22 additions and 15 deletions

View File

@ -1,6 +1,7 @@
from datetime import datetime, timedelta from datetime import datetime, timedelta
from typing import Any, Dict, List, Optional, Tuple, Type from typing import Any, Dict, List, Optional, Tuple, Type
import mock
import ujson import ujson
from django.apps import apps from django.apps import apps
from django.db import models 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_deactivate_user, do_reactivate_user, update_user_activity_interval, \
do_invite_users, do_revoke_user_invite, do_resend_user_invite_email, \ do_invite_users, do_revoke_user_invite, do_resend_user_invite_email, \
InvitationError InvitationError
from zerver.lib.create_user import create_user
from zerver.lib.timestamp import TimezoneNotUTCException, floor_to_day from zerver.lib.timestamp import TimezoneNotUTCException, floor_to_day
from zerver.lib.topic import DB_TOPIC_NAME from zerver.lib.topic import DB_TOPIC_NAME
from zerver.models import Client, Huddle, Message, Realm, \ from zerver.models import Client, Huddle, Message, Realm, \
@ -50,16 +52,21 @@ class AnalyticsTestCase(TestCase):
'date_joined': self.TIME_LAST_HOUR, 'date_joined': self.TIME_LAST_HOUR,
'full_name': 'full_name', 'full_name': 'full_name',
'short_name': 'short_name', 'short_name': 'short_name',
'pointer': -1, 'is_active': True,
'last_pointer_updater': 'seems unused?', 'is_bot': False,
'realm': self.default_realm, 'realm': self.default_realm}
'api_key': '42'}
for key, value in defaults.items(): for key, value in defaults.items():
kwargs[key] = kwargs.get(key, value) kwargs[key] = kwargs.get(key, value)
kwargs['delivery_email'] = kwargs['email'] kwargs['delivery_email'] = kwargs['email']
user_profile = UserProfile.objects.create(**kwargs) with mock.patch("zerver.lib.create_user.timezone_now", return_value=kwargs['date_joined']):
# TODO: Make this pass user_profile.full_clean() pass_kwargs = {} # type: Dict[str, Any]
return user_profile 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]: def create_stream_with_recipient(self, **kwargs: Any) -> Tuple[Stream, Recipient]:
self.name_counter += 1 self.name_counter += 1
@ -362,8 +369,8 @@ class TestCountStats(AnalyticsTestCase):
bot = self.create_user(is_bot=True) bot = self.create_user(is_bot=True)
human1 = self.create_user() human1 = self.create_user()
human2 = self.create_user() human2 = self.create_user()
recipient_human1 = Recipient.objects.create(type_id=human1.id, recipient_human1 = Recipient.objects.get(type_id=human1.id,
type=Recipient.PERSONAL) type=Recipient.PERSONAL)
recipient_stream = self.create_stream_with_recipient()[1] recipient_stream = self.create_stream_with_recipient()[1]
recipient_huddle = self.create_huddle_with_recipient()[1] recipient_huddle = self.create_huddle_with_recipient()[1]
@ -417,9 +424,9 @@ class TestCountStats(AnalyticsTestCase):
self.create_message(user2, recipient_huddle2) self.create_message(user2, recipient_huddle2)
# private messages # private messages
recipient_user1 = Recipient.objects.create(type_id=user1.id, type=Recipient.PERSONAL) recipient_user1 = Recipient.objects.get(type_id=user1.id, type=Recipient.PERSONAL)
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_user3 = Recipient.objects.create(type_id=user3.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(user1, recipient_user2)
self.create_message(user2, recipient_user1) self.create_message(user2, recipient_user1)
self.create_message(user3, recipient_user3) self.create_message(user3, recipient_user3)
@ -451,7 +458,7 @@ class TestCountStats(AnalyticsTestCase):
self.current_property = stat.property self.current_property = stat.property
user = self.create_user(id=1000) 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] stream_recipient = self.create_stream_with_recipient(id=1000)[1]
huddle_recipient = self.create_huddle_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) user1 = self.create_user(is_bot=True)
user2 = self.create_user() 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_stream = self.create_stream_with_recipient()[1]
recipient_huddle = self.create_huddle_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) bot = self.create_user(is_bot=True)
human1 = self.create_user() human1 = self.create_user()
human2 = 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() stream1, recipient_stream1 = self.create_stream_with_recipient()
stream2, recipient_stream2 = self.create_stream_with_recipient() stream2, recipient_stream2 = self.create_stream_with_recipient()