mirror of
https://github.com/zulip/zulip.git
synced 2025-11-15 03:11:54 +00:00
message: Move render_markdown into zerver.lib.markdown.
(cherry picked from commit 11bde84580)
This commit is contained in:
committed by
Tim Abbott
parent
3e2b295140
commit
4c1b1ae2f6
@@ -47,7 +47,7 @@ from zerver.lib.exceptions import (
|
|||||||
TopicWildcardMentionNotAllowedError,
|
TopicWildcardMentionNotAllowedError,
|
||||||
ZephyrMessageAlreadySentError,
|
ZephyrMessageAlreadySentError,
|
||||||
)
|
)
|
||||||
from zerver.lib.markdown import MessageRenderingResult
|
from zerver.lib.markdown import MessageRenderingResult, render_message_markdown
|
||||||
from zerver.lib.markdown import version as markdown_version
|
from zerver.lib.markdown import version as markdown_version
|
||||||
from zerver.lib.mention import MentionBackend, MentionData
|
from zerver.lib.mention import MentionBackend, MentionData
|
||||||
from zerver.lib.message import (
|
from zerver.lib.message import (
|
||||||
@@ -55,7 +55,6 @@ from zerver.lib.message import (
|
|||||||
SendMessageRequest,
|
SendMessageRequest,
|
||||||
check_user_group_mention_allowed,
|
check_user_group_mention_allowed,
|
||||||
normalize_body,
|
normalize_body,
|
||||||
render_markdown,
|
|
||||||
set_visibility_policy_possible,
|
set_visibility_policy_possible,
|
||||||
stream_wildcard_mention_allowed,
|
stream_wildcard_mention_allowed,
|
||||||
topic_wildcard_mention_allowed,
|
topic_wildcard_mention_allowed,
|
||||||
@@ -160,7 +159,7 @@ def render_incoming_message(
|
|||||||
) -> MessageRenderingResult:
|
) -> MessageRenderingResult:
|
||||||
realm_alert_words_automaton = get_alert_word_automaton(realm)
|
realm_alert_words_automaton = get_alert_word_automaton(realm)
|
||||||
try:
|
try:
|
||||||
rendering_result = render_markdown(
|
rendering_result = render_message_markdown(
|
||||||
message=message,
|
message=message,
|
||||||
content=content,
|
content=content,
|
||||||
realm=realm,
|
realm=realm,
|
||||||
@@ -732,7 +731,7 @@ def create_user_messages(
|
|||||||
topic_participant_user_ids: Set[int],
|
topic_participant_user_ids: Set[int],
|
||||||
) -> List[UserMessageLite]:
|
) -> List[UserMessageLite]:
|
||||||
# These properties on the Message are set via
|
# These properties on the Message are set via
|
||||||
# render_markdown by code in the Markdown inline patterns
|
# render_message_markdown by code in the Markdown inline patterns
|
||||||
ids_with_alert_words = rendering_result.user_ids_with_alert_words
|
ids_with_alert_words = rendering_result.user_ids_with_alert_words
|
||||||
is_stream_message = message.is_stream_message()
|
is_stream_message = message.is_stream_message()
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,8 @@ from zerver.actions.uploads import check_attachment_reference_change, do_claim_a
|
|||||||
from zerver.lib.addressee import Addressee
|
from zerver.lib.addressee import Addressee
|
||||||
from zerver.lib.display_recipient import get_recipient_ids
|
from zerver.lib.display_recipient import get_recipient_ids
|
||||||
from zerver.lib.exceptions import JsonableError, RealmDeactivatedError, UserDeactivatedError
|
from zerver.lib.exceptions import JsonableError, RealmDeactivatedError, UserDeactivatedError
|
||||||
from zerver.lib.message import SendMessageRequest, render_markdown, truncate_topic
|
from zerver.lib.markdown import render_message_markdown
|
||||||
|
from zerver.lib.message import SendMessageRequest, truncate_topic
|
||||||
from zerver.lib.recipient_parsing import extract_direct_message_recipient_ids, extract_stream_id
|
from zerver.lib.recipient_parsing import extract_direct_message_recipient_ids, extract_stream_id
|
||||||
from zerver.lib.scheduled_messages import access_scheduled_message
|
from zerver.lib.scheduled_messages import access_scheduled_message
|
||||||
from zerver.lib.string_validation import check_stream_topic
|
from zerver.lib.string_validation import check_stream_topic
|
||||||
@@ -77,7 +78,7 @@ def do_schedule_messages(
|
|||||||
scheduled_message.recipient = send_request.message.recipient
|
scheduled_message.recipient = send_request.message.recipient
|
||||||
topic_name = send_request.message.topic_name()
|
topic_name = send_request.message.topic_name()
|
||||||
scheduled_message.set_topic_name(topic_name=topic_name)
|
scheduled_message.set_topic_name(topic_name=topic_name)
|
||||||
rendering_result = render_markdown(
|
rendering_result = render_message_markdown(
|
||||||
send_request.message, send_request.message.content, send_request.realm
|
send_request.message, send_request.message.content, send_request.realm
|
||||||
)
|
)
|
||||||
scheduled_message.content = send_request.message.content
|
scheduled_message.content = send_request.message.content
|
||||||
@@ -216,7 +217,7 @@ def edit_scheduled_message(
|
|||||||
|
|
||||||
if message_content is not None:
|
if message_content is not None:
|
||||||
# User has updated the scheduled messages's content.
|
# User has updated the scheduled messages's content.
|
||||||
rendering_result = render_markdown(
|
rendering_result = render_message_markdown(
|
||||||
send_request.message, send_request.message.content, send_request.realm
|
send_request.message, send_request.message.content, send_request.realm
|
||||||
)
|
)
|
||||||
scheduled_message_object.content = send_request.message.content
|
scheduled_message_object.content = send_request.message.content
|
||||||
|
|||||||
@@ -2744,3 +2744,38 @@ def markdown_convert(
|
|||||||
)
|
)
|
||||||
markdown_stats_finish()
|
markdown_stats_finish()
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
|
||||||
|
def render_message_markdown(
|
||||||
|
message: Message,
|
||||||
|
content: str,
|
||||||
|
realm: Optional[Realm] = None,
|
||||||
|
realm_alert_words_automaton: Optional[ahocorasick.Automaton] = None,
|
||||||
|
url_embed_data: Optional[Dict[str, Optional[UrlEmbedData]]] = None,
|
||||||
|
mention_data: Optional[MentionData] = None,
|
||||||
|
email_gateway: bool = False,
|
||||||
|
) -> MessageRenderingResult:
|
||||||
|
"""
|
||||||
|
This is basically just a wrapper for do_render_markdown.
|
||||||
|
"""
|
||||||
|
|
||||||
|
if realm is None:
|
||||||
|
realm = message.get_realm()
|
||||||
|
|
||||||
|
sender = message.sender
|
||||||
|
sent_by_bot = sender.is_bot
|
||||||
|
translate_emoticons = sender.translate_emoticons
|
||||||
|
|
||||||
|
rendering_result = markdown_convert(
|
||||||
|
content,
|
||||||
|
realm_alert_words_automaton=realm_alert_words_automaton,
|
||||||
|
message=message,
|
||||||
|
message_realm=realm,
|
||||||
|
sent_by_bot=sent_by_bot,
|
||||||
|
translate_emoticons=translate_emoticons,
|
||||||
|
url_embed_data=url_embed_data,
|
||||||
|
mention_data=mention_data,
|
||||||
|
email_gateway=email_gateway,
|
||||||
|
)
|
||||||
|
|
||||||
|
return rendering_result
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ from typing import (
|
|||||||
Union,
|
Union,
|
||||||
)
|
)
|
||||||
|
|
||||||
import ahocorasick
|
|
||||||
import orjson
|
import orjson
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.db import connection
|
from django.db import connection
|
||||||
@@ -39,7 +38,7 @@ from zerver.lib.cache import (
|
|||||||
)
|
)
|
||||||
from zerver.lib.display_recipient import bulk_fetch_display_recipients, get_display_recipient_by_id
|
from zerver.lib.display_recipient import bulk_fetch_display_recipients, get_display_recipient_by_id
|
||||||
from zerver.lib.exceptions import JsonableError, MissingAuthenticationError
|
from zerver.lib.exceptions import JsonableError, MissingAuthenticationError
|
||||||
from zerver.lib.markdown import MessageRenderingResult, markdown_convert, topic_links
|
from zerver.lib.markdown import MessageRenderingResult, render_message_markdown, topic_links
|
||||||
from zerver.lib.markdown import version as markdown_version
|
from zerver.lib.markdown import version as markdown_version
|
||||||
from zerver.lib.mention import MentionData
|
from zerver.lib.mention import MentionData
|
||||||
from zerver.lib.query_helpers import query_for_ids
|
from zerver.lib.query_helpers import query_for_ids
|
||||||
@@ -59,7 +58,6 @@ from zerver.lib.topic import (
|
|||||||
messages_for_topic,
|
messages_for_topic,
|
||||||
)
|
)
|
||||||
from zerver.lib.types import DisplayRecipientT, EditHistoryEvent, UserDisplayRecipient
|
from zerver.lib.types import DisplayRecipientT, EditHistoryEvent, UserDisplayRecipient
|
||||||
from zerver.lib.url_preview.types import UrlEmbedData
|
|
||||||
from zerver.lib.user_groups import is_user_in_group
|
from zerver.lib.user_groups import is_user_in_group
|
||||||
from zerver.lib.user_topics import build_get_topic_visibility_policy, get_topic_visibility_policy
|
from zerver.lib.user_topics import build_get_topic_visibility_policy, get_topic_visibility_policy
|
||||||
from zerver.lib.users import get_inaccessible_user_ids
|
from zerver.lib.users import get_inaccessible_user_ids
|
||||||
@@ -344,7 +342,7 @@ def message_to_dict_json(message: Message, realm_id: Optional[int] = None) -> by
|
|||||||
|
|
||||||
|
|
||||||
def save_message_rendered_content(message: Message, content: str) -> str:
|
def save_message_rendered_content(message: Message, content: str) -> str:
|
||||||
rendering_result = render_markdown(message, content, realm=message.get_realm())
|
rendering_result = render_message_markdown(message, content, realm=message.get_realm())
|
||||||
rendered_content = None
|
rendered_content = None
|
||||||
if rendering_result is not None:
|
if rendering_result is not None:
|
||||||
rendered_content = rendering_result.rendered_content
|
rendered_content = rendering_result.rendered_content
|
||||||
@@ -1046,41 +1044,6 @@ def get_messages_with_usermessage_rows_for_user(
|
|||||||
).values_list("message_id", flat=True)
|
).values_list("message_id", flat=True)
|
||||||
|
|
||||||
|
|
||||||
def render_markdown(
|
|
||||||
message: Message,
|
|
||||||
content: str,
|
|
||||||
realm: Optional[Realm] = None,
|
|
||||||
realm_alert_words_automaton: Optional[ahocorasick.Automaton] = None,
|
|
||||||
url_embed_data: Optional[Dict[str, Optional[UrlEmbedData]]] = None,
|
|
||||||
mention_data: Optional[MentionData] = None,
|
|
||||||
email_gateway: bool = False,
|
|
||||||
) -> MessageRenderingResult:
|
|
||||||
"""
|
|
||||||
This is basically just a wrapper for do_render_markdown.
|
|
||||||
"""
|
|
||||||
|
|
||||||
if realm is None:
|
|
||||||
realm = message.get_realm()
|
|
||||||
|
|
||||||
sender = message.sender
|
|
||||||
sent_by_bot = sender.is_bot
|
|
||||||
translate_emoticons = sender.translate_emoticons
|
|
||||||
|
|
||||||
rendering_result = markdown_convert(
|
|
||||||
content,
|
|
||||||
realm_alert_words_automaton=realm_alert_words_automaton,
|
|
||||||
message=message,
|
|
||||||
message_realm=realm,
|
|
||||||
sent_by_bot=sent_by_bot,
|
|
||||||
translate_emoticons=translate_emoticons,
|
|
||||||
url_embed_data=url_embed_data,
|
|
||||||
mention_data=mention_data,
|
|
||||||
email_gateway=email_gateway,
|
|
||||||
)
|
|
||||||
|
|
||||||
return rendering_result
|
|
||||||
|
|
||||||
|
|
||||||
def huddle_users(recipient_id: int) -> str:
|
def huddle_users(recipient_id: int) -> str:
|
||||||
display_recipient: List[UserDisplayRecipient] = get_display_recipient_by_id(
|
display_recipient: List[UserDisplayRecipient] = get_display_recipient_by_id(
|
||||||
recipient_id,
|
recipient_id,
|
||||||
|
|||||||
@@ -206,8 +206,8 @@ from zerver.lib.events import (
|
|||||||
fetch_initial_state_data,
|
fetch_initial_state_data,
|
||||||
post_process_state,
|
post_process_state,
|
||||||
)
|
)
|
||||||
|
from zerver.lib.markdown import render_message_markdown
|
||||||
from zerver.lib.mention import MentionBackend, MentionData
|
from zerver.lib.mention import MentionBackend, MentionData
|
||||||
from zerver.lib.message import render_markdown
|
|
||||||
from zerver.lib.muted_users import get_mute_object
|
from zerver.lib.muted_users import get_mute_object
|
||||||
from zerver.lib.test_classes import ZulipTestCase
|
from zerver.lib.test_classes import ZulipTestCase
|
||||||
from zerver.lib.test_helpers import (
|
from zerver.lib.test_helpers import (
|
||||||
@@ -530,7 +530,7 @@ class NormalActionsTest(BaseAction):
|
|||||||
# Verify direct message editing - content only edit
|
# Verify direct message editing - content only edit
|
||||||
pm = Message.objects.order_by("-id")[0]
|
pm = Message.objects.order_by("-id")[0]
|
||||||
content = "new content"
|
content = "new content"
|
||||||
rendering_result = render_markdown(pm, content)
|
rendering_result = render_message_markdown(pm, content)
|
||||||
prior_mention_user_ids: Set[int] = set()
|
prior_mention_user_ids: Set[int] = set()
|
||||||
mention_backend = MentionBackend(self.user_profile.realm_id)
|
mention_backend = MentionBackend(self.user_profile.realm_id)
|
||||||
mention_data = MentionData(
|
mention_data = MentionData(
|
||||||
@@ -838,7 +838,7 @@ class NormalActionsTest(BaseAction):
|
|||||||
# Verify stream message editing - content only
|
# Verify stream message editing - content only
|
||||||
message = Message.objects.order_by("-id")[0]
|
message = Message.objects.order_by("-id")[0]
|
||||||
content = "new content"
|
content = "new content"
|
||||||
rendering_result = render_markdown(message, content)
|
rendering_result = render_message_markdown(message, content)
|
||||||
prior_mention_user_ids: Set[int] = set()
|
prior_mention_user_ids: Set[int] = set()
|
||||||
mention_backend = MentionBackend(self.user_profile.realm_id)
|
mention_backend = MentionBackend(self.user_profile.realm_id)
|
||||||
mention_data = MentionData(
|
mention_data = MentionData(
|
||||||
@@ -905,7 +905,7 @@ class NormalActionsTest(BaseAction):
|
|||||||
|
|
||||||
# Verify special case of embedded content update
|
# Verify special case of embedded content update
|
||||||
content = "embed_content"
|
content = "embed_content"
|
||||||
rendering_result = render_markdown(message, content)
|
rendering_result = render_message_markdown(message, content)
|
||||||
events = self.verify_action(
|
events = self.verify_action(
|
||||||
lambda: do_update_embedded_data(self.user_profile, message, content, rendering_result),
|
lambda: do_update_embedded_data(self.user_profile, message, content, rendering_result),
|
||||||
state_change_expected=False,
|
state_change_expected=False,
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ from zerver.lib.markdown import (
|
|||||||
markdown_convert,
|
markdown_convert,
|
||||||
maybe_update_markdown_engines,
|
maybe_update_markdown_engines,
|
||||||
possible_linked_stream_names,
|
possible_linked_stream_names,
|
||||||
|
render_message_markdown,
|
||||||
topic_links,
|
topic_links,
|
||||||
url_embed_preview_enabled,
|
url_embed_preview_enabled,
|
||||||
url_to_a,
|
url_to_a,
|
||||||
@@ -56,7 +57,6 @@ from zerver.lib.mention import (
|
|||||||
stream_wildcards,
|
stream_wildcards,
|
||||||
topic_wildcards,
|
topic_wildcards,
|
||||||
)
|
)
|
||||||
from zerver.lib.message import render_markdown
|
|
||||||
from zerver.lib.per_request_cache import flush_per_request_caches
|
from zerver.lib.per_request_cache import flush_per_request_caches
|
||||||
from zerver.lib.test_classes import ZulipTestCase
|
from zerver.lib.test_classes import ZulipTestCase
|
||||||
from zerver.lib.tex import render_tex
|
from zerver.lib.tex import render_tex
|
||||||
@@ -472,7 +472,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
sending_client=get_client("test"),
|
sending_client=get_client("test"),
|
||||||
realm=user_profile.realm,
|
realm=user_profile.realm,
|
||||||
)
|
)
|
||||||
rendering_result = render_markdown(msg, test["input"])
|
rendering_result = render_message_markdown(msg, test["input"])
|
||||||
converted = rendering_result.rendered_content
|
converted = rendering_result.rendered_content
|
||||||
else:
|
else:
|
||||||
converted = markdown_convert_wrapper(test["input"])
|
converted = markdown_convert_wrapper(test["input"])
|
||||||
@@ -640,7 +640,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
sending_client=get_client("test"),
|
sending_client=get_client("test"),
|
||||||
realm=sender_user_profile.realm,
|
realm=sender_user_profile.realm,
|
||||||
)
|
)
|
||||||
converted = render_markdown(msg, content)
|
converted = render_message_markdown(msg, content)
|
||||||
self.assertEqual(converted.rendered_content, with_preview)
|
self.assertEqual(converted.rendered_content, with_preview)
|
||||||
|
|
||||||
realm = msg.get_realm()
|
realm = msg.get_realm()
|
||||||
@@ -653,7 +653,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
sending_client=get_client("test"),
|
sending_client=get_client("test"),
|
||||||
realm=sender_user_profile.realm,
|
realm=sender_user_profile.realm,
|
||||||
)
|
)
|
||||||
converted = render_markdown(msg, content)
|
converted = render_message_markdown(msg, content)
|
||||||
self.assertEqual(converted.rendered_content, without_preview)
|
self.assertEqual(converted.rendered_content, without_preview)
|
||||||
|
|
||||||
@override_settings(EXTERNAL_URI_SCHEME="https://")
|
@override_settings(EXTERNAL_URI_SCHEME="https://")
|
||||||
@@ -729,7 +729,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
sending_client=get_client("test"),
|
sending_client=get_client("test"),
|
||||||
realm=sender_user_profile.realm,
|
realm=sender_user_profile.realm,
|
||||||
)
|
)
|
||||||
converted = render_markdown(msg, content)
|
converted = render_message_markdown(msg, content)
|
||||||
self.assertEqual(converted.rendered_content, expected)
|
self.assertEqual(converted.rendered_content, expected)
|
||||||
|
|
||||||
content = ">http://cdn.wallpapersafari.com/13/6/16eVjx.jpeg\n\nAwesome!"
|
content = ">http://cdn.wallpapersafari.com/13/6/16eVjx.jpeg\n\nAwesome!"
|
||||||
@@ -740,7 +740,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
sending_client=get_client("test"),
|
sending_client=get_client("test"),
|
||||||
realm=sender_user_profile.realm,
|
realm=sender_user_profile.realm,
|
||||||
)
|
)
|
||||||
converted = render_markdown(msg, content)
|
converted = render_message_markdown(msg, content)
|
||||||
self.assertEqual(converted.rendered_content, expected)
|
self.assertEqual(converted.rendered_content, expected)
|
||||||
|
|
||||||
content = ">* http://cdn.wallpapersafari.com/13/6/16eVjx.jpeg\n\nAwesome!"
|
content = ">* http://cdn.wallpapersafari.com/13/6/16eVjx.jpeg\n\nAwesome!"
|
||||||
@@ -751,7 +751,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
sending_client=get_client("test"),
|
sending_client=get_client("test"),
|
||||||
realm=sender_user_profile.realm,
|
realm=sender_user_profile.realm,
|
||||||
)
|
)
|
||||||
converted = render_markdown(msg, content)
|
converted = render_message_markdown(msg, content)
|
||||||
self.assertEqual(converted.rendered_content, expected)
|
self.assertEqual(converted.rendered_content, expected)
|
||||||
|
|
||||||
@override_settings(THUMBNAIL_IMAGES=True, INLINE_IMAGE_PREVIEW=True)
|
@override_settings(THUMBNAIL_IMAGES=True, INLINE_IMAGE_PREVIEW=True)
|
||||||
@@ -766,7 +766,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
sending_client=get_client("test"),
|
sending_client=get_client("test"),
|
||||||
realm=sender_user_profile.realm,
|
realm=sender_user_profile.realm,
|
||||||
)
|
)
|
||||||
converted = render_markdown(msg, content)
|
converted = render_message_markdown(msg, content)
|
||||||
self.assertEqual(converted.rendered_content, expected)
|
self.assertEqual(converted.rendered_content, expected)
|
||||||
|
|
||||||
content = "http://imaging.nikon.com/lineup/dslr/df/img/sample/img_01.jpg\n\n>http://imaging.nikon.com/lineup/dslr/df/img/sample/img_02.jpg\n\n* http://imaging.nikon.com/lineup/dslr/df/img/sample/img_03.jpg\n* https://www.google.com/images/srpr/logo4w.png"
|
content = "http://imaging.nikon.com/lineup/dslr/df/img/sample/img_01.jpg\n\n>http://imaging.nikon.com/lineup/dslr/df/img/sample/img_02.jpg\n\n* http://imaging.nikon.com/lineup/dslr/df/img/sample/img_03.jpg\n* https://www.google.com/images/srpr/logo4w.png"
|
||||||
@@ -778,7 +778,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
sending_client=get_client("test"),
|
sending_client=get_client("test"),
|
||||||
realm=sender_user_profile.realm,
|
realm=sender_user_profile.realm,
|
||||||
)
|
)
|
||||||
converted = render_markdown(msg, content)
|
converted = render_message_markdown(msg, content)
|
||||||
self.assertEqual(converted.rendered_content, expected)
|
self.assertEqual(converted.rendered_content, expected)
|
||||||
|
|
||||||
content = "Test 1\n[21136101110_1dde1c1a7e_o.jpg](/user_uploads/{realm_id}/6d/F1PX6u16JA2P-nK45PyxHIYZ/21136101110_1dde1c1a7e_o.jpg) \n\nNext image\n[IMG_20161116_023910.jpg](/user_uploads/{realm_id}/69/sh7L06e7uH7NaX6d5WFfVYQp/IMG_20161116_023910.jpg) \n\nAnother screenshot\n[Screenshot-from-2016-06-01-16-22-42.png](/user_uploads/{realm_id}/70/_aZmIEWaN1iUaxwkDjkO7bpj/Screenshot-from-2016-06-01-16-22-42.png)"
|
content = "Test 1\n[21136101110_1dde1c1a7e_o.jpg](/user_uploads/{realm_id}/6d/F1PX6u16JA2P-nK45PyxHIYZ/21136101110_1dde1c1a7e_o.jpg) \n\nNext image\n[IMG_20161116_023910.jpg](/user_uploads/{realm_id}/69/sh7L06e7uH7NaX6d5WFfVYQp/IMG_20161116_023910.jpg) \n\nAnother screenshot\n[Screenshot-from-2016-06-01-16-22-42.png](/user_uploads/{realm_id}/70/_aZmIEWaN1iUaxwkDjkO7bpj/Screenshot-from-2016-06-01-16-22-42.png)"
|
||||||
@@ -791,7 +791,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
sending_client=get_client("test"),
|
sending_client=get_client("test"),
|
||||||
realm=sender_user_profile.realm,
|
realm=sender_user_profile.realm,
|
||||||
)
|
)
|
||||||
converted = render_markdown(msg, content)
|
converted = render_message_markdown(msg, content)
|
||||||
self.assertEqual(converted.rendered_content, expected)
|
self.assertEqual(converted.rendered_content, expected)
|
||||||
|
|
||||||
@override_settings(THUMBNAIL_IMAGES=True, INLINE_IMAGE_PREVIEW=True)
|
@override_settings(THUMBNAIL_IMAGES=True, INLINE_IMAGE_PREVIEW=True)
|
||||||
@@ -806,12 +806,12 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
sending_client=get_client("test"),
|
sending_client=get_client("test"),
|
||||||
realm=sender_user_profile.realm,
|
realm=sender_user_profile.realm,
|
||||||
)
|
)
|
||||||
converted = render_markdown(msg, content)
|
converted = render_message_markdown(msg, content)
|
||||||
self.assertEqual(converted.rendered_content, expected)
|
self.assertEqual(converted.rendered_content, expected)
|
||||||
|
|
||||||
content = "https://en.wikipedia.org/static/images/icons/wikipedia.png"
|
content = "https://en.wikipedia.org/static/images/icons/wikipedia.png"
|
||||||
expected = '<div class="message_inline_image"><a href="https://en.wikipedia.org/static/images/icons/wikipedia.png"><img data-src-fullsize="/thumbnail?url=https%3A%2F%2Fen.wikipedia.org%2Fstatic%2Fimages%2Ficons%2Fwikipedia.png&size=full" src="/thumbnail?url=https%3A%2F%2Fen.wikipedia.org%2Fstatic%2Fimages%2Ficons%2Fwikipedia.png&size=thumbnail"></a></div>'
|
expected = '<div class="message_inline_image"><a href="https://en.wikipedia.org/static/images/icons/wikipedia.png"><img data-src-fullsize="/thumbnail?url=https%3A%2F%2Fen.wikipedia.org%2Fstatic%2Fimages%2Ficons%2Fwikipedia.png&size=full" src="/thumbnail?url=https%3A%2F%2Fen.wikipedia.org%2Fstatic%2Fimages%2Ficons%2Fwikipedia.png&size=thumbnail"></a></div>'
|
||||||
converted = render_markdown(msg, content)
|
converted = render_message_markdown(msg, content)
|
||||||
self.assertEqual(converted.rendered_content, expected)
|
self.assertEqual(converted.rendered_content, expected)
|
||||||
|
|
||||||
@override_settings(INLINE_IMAGE_PREVIEW=False)
|
@override_settings(INLINE_IMAGE_PREVIEW=False)
|
||||||
@@ -1100,7 +1100,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
|
|
||||||
content = ":)"
|
content = ":)"
|
||||||
expected = "<p>:)</p>"
|
expected = "<p>:)</p>"
|
||||||
converted = render_markdown(msg, content)
|
converted = render_message_markdown(msg, content)
|
||||||
self.assertEqual(converted.rendered_content, expected)
|
self.assertEqual(converted.rendered_content, expected)
|
||||||
|
|
||||||
def test_same_markup(self) -> None:
|
def test_same_markup(self) -> None:
|
||||||
@@ -1600,7 +1600,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
)
|
)
|
||||||
|
|
||||||
content = "/me makes a list\n* one\n* two"
|
content = "/me makes a list\n* one\n* two"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
rendering_result.rendered_content,
|
rendering_result.rendered_content,
|
||||||
"<p>/me makes a list</p>\n<ul>\n<li>one</li>\n<li>two</li>\n</ul>",
|
"<p>/me makes a list</p>\n<ul>\n<li>one</li>\n<li>two</li>\n</ul>",
|
||||||
@@ -1608,7 +1608,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
self.assertTrue(Message.is_status_message(content, rendering_result.rendered_content))
|
self.assertTrue(Message.is_status_message(content, rendering_result.rendered_content))
|
||||||
|
|
||||||
content = "/me takes a walk"
|
content = "/me takes a walk"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
rendering_result.rendered_content,
|
rendering_result.rendered_content,
|
||||||
"<p>/me takes a walk</p>",
|
"<p>/me takes a walk</p>",
|
||||||
@@ -1616,7 +1616,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
self.assertTrue(Message.is_status_message(content, rendering_result.rendered_content))
|
self.assertTrue(Message.is_status_message(content, rendering_result.rendered_content))
|
||||||
|
|
||||||
content = "/me writes a second line\nline"
|
content = "/me writes a second line\nline"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
rendering_result.rendered_content,
|
rendering_result.rendered_content,
|
||||||
"<p>/me writes a second line<br>\nline</p>",
|
"<p>/me writes a second line<br>\nline</p>",
|
||||||
@@ -1662,7 +1662,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
realm_alert_words_automaton = get_alert_word_automaton(user_profile.realm)
|
realm_alert_words_automaton = get_alert_word_automaton(user_profile.realm)
|
||||||
|
|
||||||
def render(msg: Message, content: str) -> MessageRenderingResult:
|
def render(msg: Message, content: str) -> MessageRenderingResult:
|
||||||
return render_markdown(
|
return render_message_markdown(
|
||||||
msg, content, realm_alert_words_automaton=realm_alert_words_automaton
|
msg, content, realm_alert_words_automaton=realm_alert_words_automaton
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1706,7 +1706,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
realm_alert_words_automaton = get_alert_word_automaton(sender_user_profile.realm)
|
realm_alert_words_automaton = get_alert_word_automaton(sender_user_profile.realm)
|
||||||
|
|
||||||
def render(msg: Message, content: str) -> MessageRenderingResult:
|
def render(msg: Message, content: str) -> MessageRenderingResult:
|
||||||
return render_markdown(
|
return render_message_markdown(
|
||||||
msg, content, realm_alert_words_automaton=realm_alert_words_automaton
|
msg, content, realm_alert_words_automaton=realm_alert_words_automaton
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1744,7 +1744,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
realm_alert_words_automaton = get_alert_word_automaton(sender_user_profile.realm)
|
realm_alert_words_automaton = get_alert_word_automaton(sender_user_profile.realm)
|
||||||
|
|
||||||
def render(msg: Message, content: str) -> MessageRenderingResult:
|
def render(msg: Message, content: str) -> MessageRenderingResult:
|
||||||
return render_markdown(
|
return render_message_markdown(
|
||||||
msg, content, realm_alert_words_automaton=realm_alert_words_automaton
|
msg, content, realm_alert_words_automaton=realm_alert_words_automaton
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1786,7 +1786,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
realm_alert_words_automaton = get_alert_word_automaton(sender_user_profile.realm)
|
realm_alert_words_automaton = get_alert_word_automaton(sender_user_profile.realm)
|
||||||
|
|
||||||
def render(msg: Message, content: str) -> MessageRenderingResult:
|
def render(msg: Message, content: str) -> MessageRenderingResult:
|
||||||
return render_markdown(
|
return render_message_markdown(
|
||||||
msg, content, realm_alert_words_automaton=realm_alert_words_automaton
|
msg, content, realm_alert_words_automaton=realm_alert_words_automaton
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1820,7 +1820,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
realm_alert_words_automaton = get_alert_word_automaton(sender_user_profile.realm)
|
realm_alert_words_automaton = get_alert_word_automaton(sender_user_profile.realm)
|
||||||
|
|
||||||
def render(msg: Message, content: str) -> MessageRenderingResult:
|
def render(msg: Message, content: str) -> MessageRenderingResult:
|
||||||
return render_markdown(
|
return render_message_markdown(
|
||||||
msg, content, realm_alert_words_automaton=realm_alert_words_automaton
|
msg, content, realm_alert_words_automaton=realm_alert_words_automaton
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1858,7 +1858,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
realm_alert_words_automaton = get_alert_word_automaton(sender_user_profile.realm)
|
realm_alert_words_automaton = get_alert_word_automaton(sender_user_profile.realm)
|
||||||
|
|
||||||
def render(msg: Message, content: str) -> MessageRenderingResult:
|
def render(msg: Message, content: str) -> MessageRenderingResult:
|
||||||
return render_markdown(
|
return render_message_markdown(
|
||||||
msg, content, realm_alert_words_automaton=realm_alert_words_automaton
|
msg, content, realm_alert_words_automaton=realm_alert_words_automaton
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1888,7 +1888,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
realm_alert_words_automaton = get_alert_word_automaton(sender_user_profile.realm)
|
realm_alert_words_automaton = get_alert_word_automaton(sender_user_profile.realm)
|
||||||
|
|
||||||
def render(msg: Message, content: str) -> MessageRenderingResult:
|
def render(msg: Message, content: str) -> MessageRenderingResult:
|
||||||
return render_markdown(
|
return render_message_markdown(
|
||||||
msg, content, realm_alert_words_automaton=realm_alert_words_automaton
|
msg, content, realm_alert_words_automaton=realm_alert_words_automaton
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1968,7 +1968,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
|
|
||||||
for topic_wildcard in topic_wildcards:
|
for topic_wildcard in topic_wildcards:
|
||||||
content = f"@**{topic_wildcard}** test"
|
content = f"@**{topic_wildcard}** test"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
rendering_result.rendered_content,
|
rendering_result.rendered_content,
|
||||||
f'<p><span class="topic-mention">@{topic_wildcard}</span> test</p>',
|
f'<p><span class="topic-mention">@{topic_wildcard}</span> test</p>',
|
||||||
@@ -1984,7 +1984,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
|
|
||||||
for stream_wildcard in stream_wildcards:
|
for stream_wildcard in stream_wildcards:
|
||||||
content = f"@**{stream_wildcard}** test"
|
content = f"@**{stream_wildcard}** test"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
rendering_result.rendered_content,
|
rendering_result.rendered_content,
|
||||||
f'<p><span class="user-mention" data-user-id="*">@{stream_wildcard}</span> test</p>',
|
f'<p><span class="user-mention" data-user-id="*">@{stream_wildcard}</span> test</p>',
|
||||||
@@ -2000,7 +2000,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
|
|
||||||
for topic_wildcard in topic_wildcards:
|
for topic_wildcard in topic_wildcards:
|
||||||
content = f"@{topic_wildcard} test"
|
content = f"@{topic_wildcard} test"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(rendering_result.rendered_content, f"<p>@{topic_wildcard} test</p>")
|
self.assertEqual(rendering_result.rendered_content, f"<p>@{topic_wildcard} test</p>")
|
||||||
self.assertFalse(rendering_result.mentions_topic_wildcard)
|
self.assertFalse(rendering_result.mentions_topic_wildcard)
|
||||||
self.assertFalse(rendering_result.mentions_stream_wildcard)
|
self.assertFalse(rendering_result.mentions_stream_wildcard)
|
||||||
@@ -2014,7 +2014,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
|
|
||||||
for stream_wildcard in stream_wildcards:
|
for stream_wildcard in stream_wildcards:
|
||||||
content = f"@{stream_wildcard} test"
|
content = f"@{stream_wildcard} test"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(rendering_result.rendered_content, f"<p>@{stream_wildcard} test</p>")
|
self.assertEqual(rendering_result.rendered_content, f"<p>@{stream_wildcard} test</p>")
|
||||||
self.assertFalse(rendering_result.mentions_topic_wildcard)
|
self.assertFalse(rendering_result.mentions_topic_wildcard)
|
||||||
self.assertFalse(rendering_result.mentions_stream_wildcard)
|
self.assertFalse(rendering_result.mentions_stream_wildcard)
|
||||||
@@ -2027,7 +2027,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
)
|
)
|
||||||
|
|
||||||
content = "test @alleycat.com test"
|
content = "test @alleycat.com test"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(rendering_result.rendered_content, "<p>test @alleycat.com test</p>")
|
self.assertEqual(rendering_result.rendered_content, "<p>test @alleycat.com test</p>")
|
||||||
self.assertFalse(rendering_result.mentions_stream_wildcard)
|
self.assertFalse(rendering_result.mentions_stream_wildcard)
|
||||||
self.assertEqual(rendering_result.mentions_user_ids, set())
|
self.assertEqual(rendering_result.mentions_user_ids, set())
|
||||||
@@ -2039,7 +2039,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
)
|
)
|
||||||
|
|
||||||
content = "@aaron test"
|
content = "@aaron test"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(rendering_result.rendered_content, "<p>@aaron test</p>")
|
self.assertEqual(rendering_result.rendered_content, "<p>@aaron test</p>")
|
||||||
self.assertFalse(rendering_result.mentions_stream_wildcard)
|
self.assertFalse(rendering_result.mentions_stream_wildcard)
|
||||||
self.assertEqual(rendering_result.mentions_user_ids, set())
|
self.assertEqual(rendering_result.mentions_user_ids, set())
|
||||||
@@ -2053,7 +2053,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
user_id = user_profile.id
|
user_id = user_profile.id
|
||||||
|
|
||||||
content = "@**King Hamlet**"
|
content = "@**King Hamlet**"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
rendering_result.rendered_content,
|
rendering_result.rendered_content,
|
||||||
f'<p><span class="user-mention" data-user-id="{user_id}">@King Hamlet</span></p>',
|
f'<p><span class="user-mention" data-user-id="{user_id}">@King Hamlet</span></p>',
|
||||||
@@ -2061,7 +2061,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
self.assertEqual(rendering_result.mentions_user_ids, {user_profile.id})
|
self.assertEqual(rendering_result.mentions_user_ids, {user_profile.id})
|
||||||
|
|
||||||
content = f"@**|{user_id}**"
|
content = f"@**|{user_id}**"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
rendering_result.rendered_content,
|
rendering_result.rendered_content,
|
||||||
f'<p><span class="user-mention" data-user-id="{user_id}">@King Hamlet</span></p>',
|
f'<p><span class="user-mention" data-user-id="{user_id}">@King Hamlet</span></p>',
|
||||||
@@ -2081,7 +2081,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
valid_characters_before_mention = ["(", "{", "[", "/", "<"]
|
valid_characters_before_mention = ["(", "{", "[", "/", "<"]
|
||||||
for character in valid_characters_before_mention:
|
for character in valid_characters_before_mention:
|
||||||
content = f"{character}@**King Hamlet**"
|
content = f"{character}@**King Hamlet**"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
rendering_result.rendered_content,
|
rendering_result.rendered_content,
|
||||||
f'<p>{escape(character)}<span class="user-mention" '
|
f'<p>{escape(character)}<span class="user-mention" '
|
||||||
@@ -2101,7 +2101,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
invalid_characters_before_mention = [".", ",", ";", ":", "#"]
|
invalid_characters_before_mention = [".", ",", ";", ":", "#"]
|
||||||
for character in invalid_characters_before_mention:
|
for character in invalid_characters_before_mention:
|
||||||
content = f"{character}@**King Hamlet**"
|
content = f"{character}@**King Hamlet**"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
unicode_character = escape(character)
|
unicode_character = escape(character)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
rendering_result.rendered_content,
|
rendering_result.rendered_content,
|
||||||
@@ -2119,7 +2119,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
user_id = user_profile.id
|
user_id = user_profile.id
|
||||||
|
|
||||||
content = "@_**King Hamlet**"
|
content = "@_**King Hamlet**"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
rendering_result.rendered_content,
|
rendering_result.rendered_content,
|
||||||
'<p><span class="user-mention silent" '
|
'<p><span class="user-mention silent" '
|
||||||
@@ -2140,7 +2140,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
user_id = user_profile.id
|
user_id = user_profile.id
|
||||||
|
|
||||||
content = "@**King Hamlet**"
|
content = "@**King Hamlet**"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
rendering_result.rendered_content,
|
rendering_result.rendered_content,
|
||||||
'<p><span class="user-mention silent" '
|
'<p><span class="user-mention silent" '
|
||||||
@@ -2161,7 +2161,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
user_id = user_profile.id
|
user_id = user_profile.id
|
||||||
|
|
||||||
content = "@_**King Hamlet**"
|
content = "@_**King Hamlet**"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
rendering_result.rendered_content,
|
rendering_result.rendered_content,
|
||||||
'<p><span class="user-mention silent" '
|
'<p><span class="user-mention silent" '
|
||||||
@@ -2180,7 +2180,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
realm=polonius.realm,
|
realm=polonius.realm,
|
||||||
)
|
)
|
||||||
content = "@**Othello, the Moor of Venice** @**King Hamlet** test message"
|
content = "@**Othello, the Moor of Venice** @**King Hamlet** test message"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
rendering_result.rendered_content,
|
rendering_result.rendered_content,
|
||||||
'<p>@<strong>Othello, the Moor of Venice</strong> <span class="user-mention" '
|
'<p>@<strong>Othello, the Moor of Venice</strong> <span class="user-mention" '
|
||||||
@@ -2190,7 +2190,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
self.assertEqual(rendering_result.mentions_user_ids, {hamlet.id})
|
self.assertEqual(rendering_result.mentions_user_ids, {hamlet.id})
|
||||||
|
|
||||||
content = "@_**Othello, the Moor of Venice** @_**King Hamlet** test message"
|
content = "@_**Othello, the Moor of Venice** @_**King Hamlet** test message"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
rendering_result.rendered_content,
|
rendering_result.rendered_content,
|
||||||
'<p>@_<strong>Othello, the Moor of Venice</strong> <span class="user-mention silent" '
|
'<p>@_<strong>Othello, the Moor of Venice</strong> <span class="user-mention silent" '
|
||||||
@@ -2207,7 +2207,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
|
|
||||||
for wildcard in stream_wildcards:
|
for wildcard in stream_wildcards:
|
||||||
content = f"@_**{wildcard}**"
|
content = f"@_**{wildcard}**"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
rendering_result.rendered_content,
|
rendering_result.rendered_content,
|
||||||
f'<p><span class="user-mention silent" data-user-id="*">{wildcard}</span></p>',
|
f'<p><span class="user-mention silent" data-user-id="*">{wildcard}</span></p>',
|
||||||
@@ -2222,7 +2222,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
|
|
||||||
for wildcard in topic_wildcards:
|
for wildcard in topic_wildcards:
|
||||||
content = f"@_**{wildcard}**"
|
content = f"@_**{wildcard}**"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
rendering_result.rendered_content,
|
rendering_result.rendered_content,
|
||||||
f'<p><span class="topic-mention silent">{wildcard}</span></p>',
|
f'<p><span class="topic-mention silent">{wildcard}</span></p>',
|
||||||
@@ -2240,7 +2240,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
user_id = user_profile.id
|
user_id = user_profile.id
|
||||||
|
|
||||||
content = "@**Invalid user** and @**King Hamlet**"
|
content = "@**Invalid user** and @**King Hamlet**"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
rendering_result.rendered_content,
|
rendering_result.rendered_content,
|
||||||
'<p>@<strong>Invalid user</strong> and <span class="user-mention" '
|
'<p>@<strong>Invalid user</strong> and <span class="user-mention" '
|
||||||
@@ -2264,7 +2264,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
# to use that data for creating a valid mention.
|
# to use that data for creating a valid mention.
|
||||||
|
|
||||||
content = f"@**King Hamlet|{hamlet.id}** and @**aaron|{hamlet.id}**"
|
content = f"@**King Hamlet|{hamlet.id}** and @**aaron|{hamlet.id}**"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
rendering_result.rendered_content,
|
rendering_result.rendered_content,
|
||||||
f'<p><span class="user-mention" data-user-id="{hamlet.id}">'
|
f'<p><span class="user-mention" data-user-id="{hamlet.id}">'
|
||||||
@@ -2283,7 +2283,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
user_id = user_profile.id
|
user_id = user_profile.id
|
||||||
|
|
||||||
content = "@_**Invalid user** and @_**King Hamlet**"
|
content = "@_**Invalid user** and @_**King Hamlet**"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
rendering_result.rendered_content,
|
rendering_result.rendered_content,
|
||||||
'<p>@_<strong>Invalid user</strong> and <span class="user-mention silent" '
|
'<p>@_<strong>Invalid user</strong> and <span class="user-mention silent" '
|
||||||
@@ -2293,7 +2293,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
self.assertEqual(rendering_result.mentions_user_ids, set())
|
self.assertEqual(rendering_result.mentions_user_ids, set())
|
||||||
|
|
||||||
content = f"@_**|123456789** and @_**|{user_id}**"
|
content = f"@_**|123456789** and @_**|{user_id}**"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
rendering_result.rendered_content,
|
rendering_result.rendered_content,
|
||||||
"<p>@_<strong>|123456789</strong> and "
|
"<p>@_<strong>|123456789</strong> and "
|
||||||
@@ -2346,7 +2346,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
|
|
||||||
content = "@**King Hamlet** and @**Cordelia, Lear's daughter**, check this out"
|
content = "@**King Hamlet** and @**Cordelia, Lear's daughter**, check this out"
|
||||||
|
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
rendering_result.rendered_content,
|
rendering_result.rendered_content,
|
||||||
"<p>"
|
"<p>"
|
||||||
@@ -2365,7 +2365,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
msg = Message(sender=othello, sending_client=get_client("test"), realm=othello.realm)
|
msg = Message(sender=othello, sending_client=get_client("test"), realm=othello.realm)
|
||||||
|
|
||||||
content = "> @**King Hamlet** and @**Othello, the Moor of Venice**\n\n @**King Hamlet** and @**Cordelia, Lear's daughter**"
|
content = "> @**King Hamlet** and @**Othello, the Moor of Venice**\n\n @**King Hamlet** and @**Cordelia, Lear's daughter**"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
rendering_result.rendered_content,
|
rendering_result.rendered_content,
|
||||||
"<blockquote>\n<p>"
|
"<blockquote>\n<p>"
|
||||||
@@ -2388,19 +2388,19 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
"</p>\n</blockquote>"
|
"</p>\n</blockquote>"
|
||||||
)
|
)
|
||||||
content = "```quote\n@**King Hamlet**\n```"
|
content = "```quote\n@**King Hamlet**\n```"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(rendering_result.rendered_content, expected)
|
self.assertEqual(rendering_result.rendered_content, expected)
|
||||||
self.assertEqual(rendering_result.mentions_user_ids, set())
|
self.assertEqual(rendering_result.mentions_user_ids, set())
|
||||||
content = "> @**King Hamlet**"
|
content = "> @**King Hamlet**"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(rendering_result.rendered_content, expected)
|
self.assertEqual(rendering_result.rendered_content, expected)
|
||||||
self.assertEqual(rendering_result.mentions_user_ids, set())
|
self.assertEqual(rendering_result.mentions_user_ids, set())
|
||||||
content = "```quote\n@_**King Hamlet**\n```"
|
content = "```quote\n@_**King Hamlet**\n```"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(rendering_result.rendered_content, expected)
|
self.assertEqual(rendering_result.rendered_content, expected)
|
||||||
self.assertEqual(rendering_result.mentions_user_ids, set())
|
self.assertEqual(rendering_result.mentions_user_ids, set())
|
||||||
content = "> @_**King Hamlet**"
|
content = "> @_**King Hamlet**"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(rendering_result.rendered_content, expected)
|
self.assertEqual(rendering_result.rendered_content, expected)
|
||||||
self.assertEqual(rendering_result.mentions_user_ids, set())
|
self.assertEqual(rendering_result.mentions_user_ids, set())
|
||||||
|
|
||||||
@@ -2416,7 +2416,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
f'<span class="user-mention silent" data-user-id="*">{wildcard}</span>'
|
f'<span class="user-mention silent" data-user-id="*">{wildcard}</span>'
|
||||||
"</p>\n</blockquote>"
|
"</p>\n</blockquote>"
|
||||||
)
|
)
|
||||||
rendering_result = render_markdown(message, content)
|
rendering_result = render_message_markdown(message, content)
|
||||||
self.assertEqual(rendering_result.rendered_content, expected)
|
self.assertEqual(rendering_result.rendered_content, expected)
|
||||||
self.assertFalse(rendering_result.mentions_stream_wildcard)
|
self.assertFalse(rendering_result.mentions_stream_wildcard)
|
||||||
self.assertFalse(rendering_result.mentions_topic_wildcard)
|
self.assertFalse(rendering_result.mentions_topic_wildcard)
|
||||||
@@ -2439,7 +2439,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
f'<span class="topic-mention silent">{wildcard}</span>'
|
f'<span class="topic-mention silent">{wildcard}</span>'
|
||||||
"</p>\n</blockquote>"
|
"</p>\n</blockquote>"
|
||||||
)
|
)
|
||||||
rendering_result = render_markdown(message, content)
|
rendering_result = render_message_markdown(message, content)
|
||||||
self.assertEqual(rendering_result.rendered_content, expected)
|
self.assertEqual(rendering_result.rendered_content, expected)
|
||||||
self.assertFalse(rendering_result.mentions_stream_wildcard)
|
self.assertFalse(rendering_result.mentions_stream_wildcard)
|
||||||
self.assertFalse(rendering_result.mentions_topic_wildcard)
|
self.assertFalse(rendering_result.mentions_topic_wildcard)
|
||||||
@@ -2469,7 +2469,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
|
|
||||||
content = f"@**Mark Twin|{twin1.id}**, @**Mark Twin|{twin2.id}** and @**Cordelia, Lear's daughter**, hi."
|
content = f"@**Mark Twin|{twin1.id}**, @**Mark Twin|{twin2.id}** and @**Cordelia, Lear's daughter**, hi."
|
||||||
|
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
rendering_result.rendered_content,
|
rendering_result.rendered_content,
|
||||||
"<p>"
|
"<p>"
|
||||||
@@ -2492,7 +2492,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
)
|
)
|
||||||
|
|
||||||
content = "Hey @**Nonexistent User**"
|
content = "Hey @**Nonexistent User**"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
rendering_result.rendered_content, "<p>Hey @<strong>Nonexistent User</strong></p>"
|
rendering_result.rendered_content, "<p>Hey @<strong>Nonexistent User</strong></p>"
|
||||||
)
|
)
|
||||||
@@ -2520,7 +2520,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
full_name="Atomic #123",
|
full_name="Atomic #123",
|
||||||
)
|
)
|
||||||
content = "@**Atomic #123**"
|
content = "@**Atomic #123**"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
rendering_result.rendered_content,
|
rendering_result.rendered_content,
|
||||||
'<p><span class="user-mention" '
|
'<p><span class="user-mention" '
|
||||||
@@ -2529,7 +2529,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
)
|
)
|
||||||
self.assertEqual(rendering_result.mentions_user_ids, {test_user.id})
|
self.assertEqual(rendering_result.mentions_user_ids, {test_user.id})
|
||||||
content = "@_**Atomic #123**"
|
content = "@_**Atomic #123**"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
rendering_result.rendered_content,
|
rendering_result.rendered_content,
|
||||||
'<p><span class="user-mention silent" '
|
'<p><span class="user-mention silent" '
|
||||||
@@ -2556,7 +2556,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
user_group = self.create_user_group_for_test("support")
|
user_group = self.create_user_group_for_test("support")
|
||||||
|
|
||||||
content = "@**King Hamlet** @*support*"
|
content = "@**King Hamlet** @*support*"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
rendering_result.rendered_content,
|
rendering_result.rendered_content,
|
||||||
'<p><span class="user-mention" '
|
'<p><span class="user-mention" '
|
||||||
@@ -2581,7 +2581,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
user_group = self.create_user_group_for_test("support")
|
user_group = self.create_user_group_for_test("support")
|
||||||
|
|
||||||
content = "@**King Hamlet** @*Invalid user group* @*support*"
|
content = "@**King Hamlet** @*Invalid user group* @*support*"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
rendering_result.rendered_content,
|
rendering_result.rendered_content,
|
||||||
'<p><span class="user-mention" '
|
'<p><span class="user-mention" '
|
||||||
@@ -2615,7 +2615,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
user_group = self.create_user_group_for_test("support #123")
|
user_group = self.create_user_group_for_test("support #123")
|
||||||
|
|
||||||
content = "@**King Hamlet** @*support #123*"
|
content = "@**King Hamlet** @*support #123*"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
rendering_result.rendered_content,
|
rendering_result.rendered_content,
|
||||||
'<p><span class="user-mention" '
|
'<p><span class="user-mention" '
|
||||||
@@ -2659,7 +2659,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
backend = self.create_user_group_for_test("backend")
|
backend = self.create_user_group_for_test("backend")
|
||||||
|
|
||||||
content = "@*support* and @*backend*, check this out"
|
content = "@*support* and @*backend*, check this out"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
rendering_result.rendered_content,
|
rendering_result.rendered_content,
|
||||||
"<p>"
|
"<p>"
|
||||||
@@ -2719,7 +2719,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
)
|
)
|
||||||
|
|
||||||
content = "Hey @*Nonexistent group*"
|
content = "Hey @*Nonexistent group*"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
rendering_result.rendered_content, "<p>Hey @<em>Nonexistent group</em></p>"
|
rendering_result.rendered_content, "<p>Hey @<em>Nonexistent group</em></p>"
|
||||||
)
|
)
|
||||||
@@ -2735,7 +2735,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
support = self.create_user_group_for_test("support")
|
support = self.create_user_group_for_test("support")
|
||||||
|
|
||||||
content = "We'll add you to @_*support* user group."
|
content = "We'll add you to @_*support* user group."
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
rendering_result.rendered_content,
|
rendering_result.rendered_content,
|
||||||
"<p>We'll add you to "
|
"<p>We'll add you to "
|
||||||
@@ -2758,7 +2758,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
f'<span class="user-group-mention silent" data-user-group-id="{backend.id}">backend</span>'
|
f'<span class="user-group-mention silent" data-user-group-id="{backend.id}">backend</span>'
|
||||||
"</p>\n</blockquote>"
|
"</p>\n</blockquote>"
|
||||||
)
|
)
|
||||||
rendering_result = render_markdown(message, content)
|
rendering_result = render_message_markdown(message, content)
|
||||||
self.assertEqual(rendering_result.rendered_content, expected)
|
self.assertEqual(rendering_result.rendered_content, expected)
|
||||||
self.assertEqual(rendering_result.mentions_user_group_ids, set())
|
self.assertEqual(rendering_result.mentions_user_group_ids, set())
|
||||||
|
|
||||||
@@ -2778,13 +2778,13 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
|
|
||||||
# Owner cannot mention a system user group.
|
# Owner cannot mention a system user group.
|
||||||
msg = Message(sender=desdemona, sending_client=get_client("test"), realm=desdemona.realm)
|
msg = Message(sender=desdemona, sending_client=get_client("test"), realm=desdemona.realm)
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(rendering_result.mentions_user_ids, {hamlet.id})
|
self.assertEqual(rendering_result.mentions_user_ids, {hamlet.id})
|
||||||
self.assertNotIn(moderators_group, rendering_result.mentions_user_group_ids)
|
self.assertNotIn(moderators_group, rendering_result.mentions_user_group_ids)
|
||||||
|
|
||||||
# Admin belonging to user group also cannot mention a system user group.
|
# Admin belonging to user group also cannot mention a system user group.
|
||||||
msg = Message(sender=iago, sending_client=get_client("test"), realm=iago.realm)
|
msg = Message(sender=iago, sending_client=get_client("test"), realm=iago.realm)
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(rendering_result.mentions_user_ids, {hamlet.id})
|
self.assertEqual(rendering_result.mentions_user_ids, {hamlet.id})
|
||||||
self.assertNotIn(moderators_group, rendering_result.mentions_user_group_ids)
|
self.assertNotIn(moderators_group, rendering_result.mentions_user_group_ids)
|
||||||
|
|
||||||
@@ -2798,7 +2798,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
)
|
)
|
||||||
content = "#**Denmark**"
|
content = "#**Denmark**"
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
render_markdown(msg, content).rendered_content,
|
render_message_markdown(msg, content).rendered_content,
|
||||||
'<p><a class="stream" data-stream-id="{d.id}" href="/#narrow/stream/{d.id}-Denmark">#{d.name}</a></p>'.format(
|
'<p><a class="stream" data-stream-id="{d.id}" href="/#narrow/stream/{d.id}-Denmark">#{d.name}</a></p>'.format(
|
||||||
d=denmark,
|
d=denmark,
|
||||||
),
|
),
|
||||||
@@ -2814,7 +2814,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
)
|
)
|
||||||
content = "#**Invalid** and #**Denmark**"
|
content = "#**Invalid** and #**Denmark**"
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
render_markdown(msg, content).rendered_content,
|
render_message_markdown(msg, content).rendered_content,
|
||||||
'<p>#<strong>Invalid</strong> and <a class="stream" data-stream-id="{d.id}" href="/#narrow/stream/{d.id}-Denmark">#{d.name}</a></p>'.format(
|
'<p>#<strong>Invalid</strong> and <a class="stream" data-stream-id="{d.id}" href="/#narrow/stream/{d.id}-Denmark">#{d.name}</a></p>'.format(
|
||||||
d=denmark,
|
d=denmark,
|
||||||
),
|
),
|
||||||
@@ -2832,7 +2832,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
scotland = get_stream("Scotland", realm)
|
scotland = get_stream("Scotland", realm)
|
||||||
content = "Look to #**Denmark** and #**Scotland**, there something"
|
content = "Look to #**Denmark** and #**Scotland**, there something"
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
render_markdown(msg, content).rendered_content,
|
render_message_markdown(msg, content).rendered_content,
|
||||||
"<p>Look to "
|
"<p>Look to "
|
||||||
'<a class="stream" '
|
'<a class="stream" '
|
||||||
f'data-stream-id="{denmark.id}" '
|
f'data-stream-id="{denmark.id}" '
|
||||||
@@ -2850,7 +2850,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
msg = Message(sender=sender_user_profile, sending_client=get_client("test"), realm=realm)
|
msg = Message(sender=sender_user_profile, sending_client=get_client("test"), realm=realm)
|
||||||
content = "#**CaseSens**"
|
content = "#**CaseSens**"
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
render_markdown(msg, content).rendered_content,
|
render_message_markdown(msg, content).rendered_content,
|
||||||
'<p><a class="stream" data-stream-id="{s.id}" href="/#narrow/stream/{s.id}-{s.name}">#{s.name}</a></p>'.format(
|
'<p><a class="stream" data-stream-id="{s.id}" href="/#narrow/stream/{s.id}-{s.name}">#{s.name}</a></p>'.format(
|
||||||
s=case_sens,
|
s=case_sens,
|
||||||
),
|
),
|
||||||
@@ -2866,7 +2866,8 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
msg = Message(sender=sender_user_profile, sending_client=get_client("test"), realm=realm)
|
msg = Message(sender=sender_user_profile, sending_client=get_client("test"), realm=realm)
|
||||||
content = "#**casesens**"
|
content = "#**casesens**"
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
render_markdown(msg, content).rendered_content, "<p>#<strong>casesens</strong></p>"
|
render_message_markdown(msg, content).rendered_content,
|
||||||
|
"<p>#<strong>casesens</strong></p>",
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_topic_single(self) -> None:
|
def test_topic_single(self) -> None:
|
||||||
@@ -2879,7 +2880,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
)
|
)
|
||||||
content = "#**Denmark>some topic**"
|
content = "#**Denmark>some topic**"
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
render_markdown(msg, content).rendered_content,
|
render_message_markdown(msg, content).rendered_content,
|
||||||
'<p><a class="stream-topic" data-stream-id="{d.id}" href="/#narrow/stream/{d.id}-Denmark/topic/some.20topic">#{d.name} > some topic</a></p>'.format(
|
'<p><a class="stream-topic" data-stream-id="{d.id}" href="/#narrow/stream/{d.id}-Denmark/topic/some.20topic">#{d.name} > some topic</a></p>'.format(
|
||||||
d=denmark,
|
d=denmark,
|
||||||
),
|
),
|
||||||
@@ -2903,7 +2904,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
msg = Message(sender=sender_user_profile, sending_client=get_client("test"), realm=realm)
|
msg = Message(sender=sender_user_profile, sending_client=get_client("test"), realm=realm)
|
||||||
content = "#**Denmark>#1234**"
|
content = "#**Denmark>#1234**"
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
render_markdown(msg, content).rendered_content,
|
render_message_markdown(msg, content).rendered_content,
|
||||||
'<p><a class="stream-topic" data-stream-id="{d.id}" href="/#narrow/stream/{d.id}-Denmark/topic/.231234">#{d.name} > #1234</a></p>'.format(
|
'<p><a class="stream-topic" data-stream-id="{d.id}" href="/#narrow/stream/{d.id}-Denmark/topic/.231234">#{d.name} > #1234</a></p>'.format(
|
||||||
d=denmark,
|
d=denmark,
|
||||||
),
|
),
|
||||||
@@ -2920,7 +2921,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
)
|
)
|
||||||
content = "This has two links: #**Denmark>some topic** and #**Scotland>other topic**."
|
content = "This has two links: #**Denmark>some topic** and #**Scotland>other topic**."
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
render_markdown(msg, content).rendered_content,
|
render_message_markdown(msg, content).rendered_content,
|
||||||
"<p>This has two links: "
|
"<p>This has two links: "
|
||||||
f'<a class="stream-topic" data-stream-id="{denmark.id}" '
|
f'<a class="stream-topic" data-stream-id="{denmark.id}" '
|
||||||
f'href="/#narrow/stream/{denmark.id}-{denmark.name}/topic/some.20topic">'
|
f'href="/#narrow/stream/{denmark.id}-{denmark.name}/topic/some.20topic">'
|
||||||
@@ -2951,7 +2952,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
quoted_name = ".D0.BF.D1.80.D0.B8.D0.B2.D0.B5.D1.82"
|
quoted_name = ".D0.BF.D1.80.D0.B8.D0.B2.D0.B5.D1.82"
|
||||||
href = f"/#narrow/stream/{uni.id}-{quoted_name}"
|
href = f"/#narrow/stream/{uni.id}-{quoted_name}"
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
render_markdown(msg, content).rendered_content,
|
render_message_markdown(msg, content).rendered_content,
|
||||||
f'<p><a class="stream" data-stream-id="{uni.id}" href="{href}">#{uni.name}</a></p>',
|
f'<p><a class="stream" data-stream-id="{uni.id}" href="{href}">#{uni.name}</a></p>',
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -2974,7 +2975,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
content = "#**Stream #1234**"
|
content = "#**Stream #1234**"
|
||||||
href = f"/#narrow/stream/{stream.id}-Stream-.231234"
|
href = f"/#narrow/stream/{stream.id}-Stream-.231234"
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
render_markdown(msg, content).rendered_content,
|
render_message_markdown(msg, content).rendered_content,
|
||||||
'<p><a class="stream" data-stream-id="{s.id}" href="{href}">#{s.name}</a></p>'.format(
|
'<p><a class="stream" data-stream-id="{s.id}" href="{href}">#{s.name}</a></p>'.format(
|
||||||
s=stream,
|
s=stream,
|
||||||
href=href,
|
href=href,
|
||||||
@@ -2990,7 +2991,7 @@ class MarkdownTest(ZulipTestCase):
|
|||||||
)
|
)
|
||||||
|
|
||||||
content = "There #**Nonexistentstream**"
|
content = "There #**Nonexistentstream**"
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
rendering_result.rendered_content, "<p>There #<strong>Nonexistentstream</strong></p>"
|
rendering_result.rendered_content, "<p>There #<strong>Nonexistentstream</strong></p>"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -207,7 +207,7 @@ class MessageDictTest(ZulipTestCase):
|
|||||||
self.assertEqual(message.rendered_content, expected_content)
|
self.assertEqual(message.rendered_content, expected_content)
|
||||||
self.assertEqual(message.rendered_content_version, markdown_version)
|
self.assertEqual(message.rendered_content_version, markdown_version)
|
||||||
|
|
||||||
@mock.patch("zerver.lib.message.markdown_convert")
|
@mock.patch("zerver.lib.message.render_message_markdown")
|
||||||
def test_applying_markdown_invalid_format(self, convert_mock: Any) -> None:
|
def test_applying_markdown_invalid_format(self, convert_mock: Any) -> None:
|
||||||
# pretend the converter returned an invalid message without raising an exception
|
# pretend the converter returned an invalid message without raising an exception
|
||||||
convert_mock.return_value = None
|
convert_mock.return_value = None
|
||||||
|
|||||||
@@ -20,12 +20,12 @@ from zerver.actions.users import do_deactivate_user
|
|||||||
from zerver.lib.avatar import avatar_url
|
from zerver.lib.avatar import avatar_url
|
||||||
from zerver.lib.display_recipient import get_display_recipient
|
from zerver.lib.display_recipient import get_display_recipient
|
||||||
from zerver.lib.exceptions import JsonableError
|
from zerver.lib.exceptions import JsonableError
|
||||||
|
from zerver.lib.markdown import render_message_markdown
|
||||||
from zerver.lib.mention import MentionBackend, MentionData
|
from zerver.lib.mention import MentionBackend, MentionData
|
||||||
from zerver.lib.message import (
|
from zerver.lib.message import (
|
||||||
MessageDict,
|
MessageDict,
|
||||||
get_first_visible_message_id,
|
get_first_visible_message_id,
|
||||||
maybe_update_first_visible_message_id,
|
maybe_update_first_visible_message_id,
|
||||||
render_markdown,
|
|
||||||
update_first_visible_message_id,
|
update_first_visible_message_id,
|
||||||
)
|
)
|
||||||
from zerver.lib.narrow import (
|
from zerver.lib.narrow import (
|
||||||
@@ -4299,7 +4299,7 @@ class MessageHasKeywordsTest(ZulipTestCase):
|
|||||||
def update_message(self, msg: Message, content: str) -> None:
|
def update_message(self, msg: Message, content: str) -> None:
|
||||||
hamlet = self.example_user("hamlet")
|
hamlet = self.example_user("hamlet")
|
||||||
realm_id = hamlet.realm.id
|
realm_id = hamlet.realm.id
|
||||||
rendering_result = render_markdown(msg, content)
|
rendering_result = render_message_markdown(msg, content)
|
||||||
mention_backend = MentionBackend(realm_id)
|
mention_backend = MentionBackend(realm_id)
|
||||||
mention_data = MentionData(mention_backend, content, msg.sender)
|
mention_data = MentionData(mention_backend, content, msg.sender)
|
||||||
do_update_message(
|
do_update_message(
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ from zerver.actions.message_send import (
|
|||||||
extract_stream_indicator,
|
extract_stream_indicator,
|
||||||
)
|
)
|
||||||
from zerver.lib.exceptions import JsonableError
|
from zerver.lib.exceptions import JsonableError
|
||||||
from zerver.lib.message import render_markdown
|
from zerver.lib.markdown import render_message_markdown
|
||||||
from zerver.lib.request import REQ, RequestNotes, has_request_variables
|
from zerver.lib.request import REQ, RequestNotes, has_request_variables
|
||||||
from zerver.lib.response import json_success
|
from zerver.lib.response import json_success
|
||||||
from zerver.lib.topic import REQ_topic
|
from zerver.lib.topic import REQ_topic
|
||||||
@@ -272,5 +272,5 @@ def render_message_backend(
|
|||||||
assert client is not None
|
assert client is not None
|
||||||
message.sending_client = client
|
message.sending_client = client
|
||||||
|
|
||||||
rendering_result = render_markdown(message, content, realm=user_profile.realm)
|
rendering_result = render_message_markdown(message, content, realm=user_profile.realm)
|
||||||
return json_success(request, data={"rendered": rendering_result.rendered_content})
|
return json_success(request, data={"rendered": rendering_result.rendered_content})
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ from django.core.management.base import BaseCommand, CommandParser
|
|||||||
from django.db.models import QuerySet
|
from django.db.models import QuerySet
|
||||||
from typing_extensions import override
|
from typing_extensions import override
|
||||||
|
|
||||||
from zerver.lib.message import render_markdown
|
from zerver.lib.markdown import render_message_markdown
|
||||||
from zerver.models import Message
|
from zerver.models import Message
|
||||||
|
|
||||||
|
|
||||||
@@ -60,7 +60,7 @@ class Command(BaseCommand):
|
|||||||
orjson.dumps(
|
orjson.dumps(
|
||||||
{
|
{
|
||||||
"id": message.id,
|
"id": message.id,
|
||||||
"content": render_markdown(message, content),
|
"content": render_message_markdown(message, content),
|
||||||
},
|
},
|
||||||
option=orjson.OPT_APPEND_NEWLINE,
|
option=orjson.OPT_APPEND_NEWLINE,
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user