mirror of
https://github.com/zulip/zulip.git
synced 2025-11-02 13:03:29 +00:00
refactor: Rename bugdown to markdown in message.py and test_messages.py.
This commit is part of series of commits aimed at renaming bugdown to markdown.
This commit is contained in:
@@ -13,7 +13,6 @@ from psycopg2.sql import SQL
|
||||
from typing_extensions import TypedDict
|
||||
|
||||
from analytics.lib.counts import COUNT_STATS, RealmCount
|
||||
from zerver.lib import markdown as bugdown
|
||||
from zerver.lib.avatar import get_avatar_field
|
||||
from zerver.lib.cache import (
|
||||
cache_with_key,
|
||||
@@ -26,6 +25,10 @@ from zerver.lib.display_recipient import (
|
||||
UserDisplayRecipient,
|
||||
bulk_fetch_display_recipients,
|
||||
)
|
||||
from zerver.lib.markdown import MentionData
|
||||
from zerver.lib.markdown import convert as markdown_convert
|
||||
from zerver.lib.markdown import topic_links
|
||||
from zerver.lib.markdown import version as markdown_version
|
||||
from zerver.lib.request import JsonableError
|
||||
from zerver.lib.stream_subscription import get_stream_subscriptions_for_user
|
||||
from zerver.lib.timestamp import datetime_to_timestamp
|
||||
@@ -165,7 +168,7 @@ def message_to_dict_json(message: Message, realm_id: Optional[int]=None) -> byte
|
||||
def save_message_rendered_content(message: Message, content: str) -> str:
|
||||
rendered_content = render_markdown(message, content, realm=message.get_realm())
|
||||
message.rendered_content = rendered_content
|
||||
message.rendered_content_version = bugdown.version
|
||||
message.rendered_content_version = markdown_version
|
||||
message.save_rendered_content()
|
||||
return rendered_content
|
||||
|
||||
@@ -389,24 +392,24 @@ class MessageDict:
|
||||
# Render topic_links with the stream's realm instead of the
|
||||
# sender's realm; this is important for messages sent by
|
||||
# cross-realm bots like NOTIFICATION_BOT.
|
||||
obj[TOPIC_LINKS] = bugdown.topic_links(rendering_realm_id, topic_name)
|
||||
obj[TOPIC_LINKS] = topic_links(rendering_realm_id, topic_name)
|
||||
|
||||
if last_edit_time is not None:
|
||||
obj['last_edit_timestamp'] = datetime_to_timestamp(last_edit_time)
|
||||
assert edit_history is not None
|
||||
obj['edit_history'] = ujson.loads(edit_history)
|
||||
|
||||
if Message.need_to_render_content(rendered_content, rendered_content_version, bugdown.version):
|
||||
if Message.need_to_render_content(rendered_content, rendered_content_version, markdown_version):
|
||||
# We really shouldn't be rendering objects in this method, but there is
|
||||
# a scenario where we upgrade the version of bugdown and fail to run
|
||||
# a scenario where we upgrade the version of markdown and fail to run
|
||||
# management commands to re-render historical messages, and then we
|
||||
# need to have side effects. This method is optimized to not need full
|
||||
# blown ORM objects, but the bugdown renderer is unfortunately highly
|
||||
# blown ORM objects, but the markdown renderer is unfortunately highly
|
||||
# coupled to Message, and we also need to persist the new rendered content.
|
||||
# If we don't have a message object passed in, we get one here. The cost
|
||||
# of going to the DB here should be overshadowed by the cost of rendering
|
||||
# and updating the row.
|
||||
# TODO: see #1379 to eliminate bugdown dependencies
|
||||
# TODO: see #1379 to eliminate markdown dependencies
|
||||
message = Message.objects.select_related().get(id=message_id)
|
||||
|
||||
assert message is not None # Hint for mypy.
|
||||
@@ -658,7 +661,7 @@ def render_markdown(message: Message,
|
||||
content: str,
|
||||
realm: Optional[Realm]=None,
|
||||
realm_alert_words_automaton: Optional[ahocorasick.Automaton]=None,
|
||||
mention_data: Optional[bugdown.MentionData]=None,
|
||||
mention_data: Optional[MentionData]=None,
|
||||
email_gateway: bool=False) -> str:
|
||||
'''
|
||||
This is basically just a wrapper for do_render_markdown.
|
||||
@@ -690,9 +693,9 @@ def do_render_markdown(message: Message,
|
||||
sent_by_bot: bool,
|
||||
translate_emoticons: bool,
|
||||
realm_alert_words_automaton: Optional[ahocorasick.Automaton]=None,
|
||||
mention_data: Optional[bugdown.MentionData]=None,
|
||||
mention_data: Optional[MentionData]=None,
|
||||
email_gateway: bool=False) -> str:
|
||||
"""Return HTML for given markdown. Bugdown may add properties to the
|
||||
"""Return HTML for given markdown. Markdown may add properties to the
|
||||
message object such as `mentions_user_ids`, `mentions_user_group_ids`, and
|
||||
`mentions_wildcard`. These are only on this Django object and are not
|
||||
saved in the database.
|
||||
@@ -705,8 +708,8 @@ def do_render_markdown(message: Message,
|
||||
message.links_for_preview = set()
|
||||
message.user_ids_with_alert_words = set()
|
||||
|
||||
# DO MAIN WORK HERE -- call bugdown to convert
|
||||
rendered_content = bugdown.convert(
|
||||
# DO MAIN WORK HERE -- call markdown to convert
|
||||
rendered_content = markdown_convert(
|
||||
content,
|
||||
realm_alert_words_automaton=realm_alert_words_automaton,
|
||||
message=message,
|
||||
|
||||
@@ -16,7 +16,6 @@ from django.utils.timezone import now as timezone_now
|
||||
from analytics.lib.counts import COUNT_STATS
|
||||
from analytics.models import RealmCount
|
||||
from zerver.decorator import JsonableError
|
||||
from zerver.lib import markdown as bugdown
|
||||
from zerver.lib.actions import (
|
||||
check_message,
|
||||
check_send_stream_message,
|
||||
@@ -50,6 +49,8 @@ from zerver.lib.actions import (
|
||||
from zerver.lib.addressee import Addressee
|
||||
from zerver.lib.cache import cache_delete, get_stream_cache_key, to_dict_cache_key_id
|
||||
from zerver.lib.create_user import create_user_profile
|
||||
from zerver.lib.markdown import MentionData
|
||||
from zerver.lib.markdown import version as markdown_version
|
||||
from zerver.lib.message import (
|
||||
MessageDict,
|
||||
bulk_access_messages,
|
||||
@@ -1383,7 +1384,7 @@ class MessageDictTest(ZulipTestCase):
|
||||
recipient=recipient,
|
||||
content=f'whatever {i}',
|
||||
rendered_content='DOES NOT MATTER',
|
||||
rendered_content_version=bugdown.version,
|
||||
rendered_content_version=markdown_version,
|
||||
date_sent=timezone_now(),
|
||||
sending_client=sending_client,
|
||||
last_edit_time=timezone_now(),
|
||||
@@ -1445,9 +1446,9 @@ class MessageDictTest(ZulipTestCase):
|
||||
self.assertEqual(dct['rendered_content'], expected_content)
|
||||
message = Message.objects.get(id=message.id)
|
||||
self.assertEqual(message.rendered_content, expected_content)
|
||||
self.assertEqual(message.rendered_content_version, bugdown.version)
|
||||
self.assertEqual(message.rendered_content_version, markdown_version)
|
||||
|
||||
@mock.patch("zerver.lib.message.bugdown.convert")
|
||||
@mock.patch("zerver.lib.message.markdown_convert")
|
||||
def test_applying_markdown_invalid_format(self, convert_mock: Any) -> None:
|
||||
# pretend the converter returned an invalid message without raising an exception
|
||||
convert_mock.return_value = None
|
||||
@@ -4218,7 +4219,7 @@ class MessageHasKeywordsTest(ZulipTestCase):
|
||||
self.assertEqual(attachment.is_claimed(), claimed)
|
||||
|
||||
# This message should claim attachments 1 only because attachment 2
|
||||
# is not being parsed as a link by Bugdown.
|
||||
# is not being parsed as a link by Markdown.
|
||||
body = ("Some files here ...[zulip.txt]({})" +
|
||||
"{}.... Some more...." +
|
||||
"{}").format(dummy_urls[0], dummy_urls[1], dummy_urls[1])
|
||||
@@ -4227,7 +4228,7 @@ class MessageHasKeywordsTest(ZulipTestCase):
|
||||
assert_attachment_claimed(dummy_path_ids[1], False)
|
||||
|
||||
# This message tries to claim the third attachment but fails because
|
||||
# Bugdown would not set has_attachments = True here.
|
||||
# Markdown would not set has_attachments = True here.
|
||||
body = f"Link in code: `{dummy_urls[2]}`"
|
||||
self.send_stream_message(user_profile, "Denmark", body, "test")
|
||||
assert_attachment_claimed(dummy_path_ids[2], False)
|
||||
@@ -4265,7 +4266,7 @@ class MessageHasKeywordsTest(ZulipTestCase):
|
||||
hamlet = self.example_user('hamlet')
|
||||
realm_id = hamlet.realm.id
|
||||
rendered_content = render_markdown(msg, content)
|
||||
mention_data = bugdown.MentionData(realm_id, content)
|
||||
mention_data = MentionData(realm_id, content)
|
||||
do_update_message(hamlet, msg, None, None, "change_one", False, False, content,
|
||||
rendered_content, set(), set(), mention_data=mention_data)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user