mirror of https://github.com/zulip/zulip.git
migration_test: Add test for 0145 migration.
This commit is contained in:
parent
0767a5b955
commit
b489eded17
|
@ -0,0 +1,58 @@
|
||||||
|
from zerver.lib.test_classes import MigrationsTestCase
|
||||||
|
from zerver.lib.test_helpers import use_db_models, make_client
|
||||||
|
from django.utils.timezone import now as timezone_now
|
||||||
|
from django.db.migrations.state import StateApps
|
||||||
|
from django.db.models.base import ModelBase
|
||||||
|
|
||||||
|
from zerver.models import get_stream
|
||||||
|
|
||||||
|
class EmojiName2IdTestCase(MigrationsTestCase):
|
||||||
|
|
||||||
|
migrate_from = '0144_remove_realm_create_generic_bot_by_admins_only'
|
||||||
|
migrate_to = '0145_reactions_realm_emoji_name_to_id'
|
||||||
|
|
||||||
|
@use_db_models
|
||||||
|
def setUpBeforeMigration(self, apps: StateApps) -> None:
|
||||||
|
Reaction = apps.get_model('zerver', 'Reaction')
|
||||||
|
RealmEmoji = apps.get_model('zerver', 'RealmEmoji')
|
||||||
|
Message = apps.get_model('zerver', 'Message')
|
||||||
|
Recipient = apps.get_model('zerver', 'Recipient')
|
||||||
|
|
||||||
|
sender = self.example_user('iago')
|
||||||
|
realm = sender.realm
|
||||||
|
sending_client = make_client(name="test suite")
|
||||||
|
stream_name = 'Denmark'
|
||||||
|
stream = get_stream(stream_name, realm)
|
||||||
|
subject = 'foo'
|
||||||
|
|
||||||
|
def send_fake_message(message_content: str, stream: ModelBase) -> ModelBase:
|
||||||
|
recipient = Recipient.objects.get(type_id=stream.id, type=2)
|
||||||
|
return Message.objects.create(sender = sender,
|
||||||
|
recipient = recipient,
|
||||||
|
subject = subject,
|
||||||
|
content = message_content,
|
||||||
|
pub_date = timezone_now(),
|
||||||
|
sending_client = sending_client)
|
||||||
|
message = send_fake_message('Test 1', stream)
|
||||||
|
|
||||||
|
# Create reactions for all the realm emoji's on the message we faked.
|
||||||
|
for realm_emoji in RealmEmoji.objects.all():
|
||||||
|
reaction = Reaction(user_profile=sender, message=message,
|
||||||
|
emoji_name=realm_emoji.name, emoji_code=realm_emoji.name,
|
||||||
|
reaction_type='realm_emoji')
|
||||||
|
reaction.save()
|
||||||
|
realm_emoji_reactions_count = Reaction.objects.filter(reaction_type='realm_emoji').count()
|
||||||
|
self.assertEqual(realm_emoji_reactions_count, 1)
|
||||||
|
|
||||||
|
def test_tags_migrated(self) -> None:
|
||||||
|
Reaction = self.apps.get_model('zerver', 'Reaction')
|
||||||
|
RealmEmoji = self.apps.get_model('zerver', 'RealmEmoji')
|
||||||
|
|
||||||
|
realm_emoji_reactions = Reaction.objects.filter(reaction_type='realm_emoji')
|
||||||
|
realm_emoji_reactions_count = realm_emoji_reactions.count()
|
||||||
|
self.assertEqual(realm_emoji_reactions_count, 1)
|
||||||
|
for reaction in realm_emoji_reactions:
|
||||||
|
realm_emoji = RealmEmoji.objects.get(
|
||||||
|
realm_id=reaction.user_profile.realm_id,
|
||||||
|
name=reaction.emoji_name)
|
||||||
|
self.assertEqual(reaction.emoji_code, str(realm_emoji.id))
|
Loading…
Reference in New Issue