def test_get_markdown_element_tree(self): """Testing get_markdown_element_tree""" node = get_markdown_element_tree( self.render_markdown('**Test**\nHi.')) self.assertEqual(node[0].toxml(), '<p><strong>Test</strong><br/>\n' 'Hi.</p>')
def test_sanitize_illegal_chars(self): """Testing sanitize_illegal_chars_for_xml""" s = '<a>\u2018\u2019\u201c\u201d\u201c\u201d</a>' # This used to cause a UnicodeDecodeError nodes = get_markdown_element_tree(s) self.assertEqual(len(nodes), 1) self.assertEqual(nodes[0].toxml(), '<a>\u2018\u2019\u201c\u201d\u201c\u201d</a>')
def get_markdown_element_tree(markdown_html): """Returns an XML element tree for Markdown-generated HTML. This will build the tree and return all nodes representing the rendered Markdown content. This is deprecated. Please use djblets.markdown.get_markdown_element_tree instead. """ warnings.warn( 'reviewboard.reviews.markdown_utils.get_markdown_element_tree is ' 'deprecated. Please use djblets.markdown.get_markdown_element_tree.', DeprecationWarning) return djblets_markdown.get_markdown_element_tree(markdown_html)
def test_get_markdown_element_tree_with_named_entities(self): """Testing get_markdown_element_tree with named entities""" rendered_html_entities = ['&fooooo;'] expected_html_entities = ['?'] # toxml() will convert a select list of characters into named # entities when generating the string. We need to account for this. # These aren't expanded when text is processed in # get_markdown_element_tree(). They'll be &#...; entities. toxml_expanded_chars = { '&': '&', '<': '<', '>': '>', '"': '"', } for char_code, entity_name in six.iteritems(codepoint2name): rendered_html_entities.append('&%s;' % entity_name) char = six.unichr(char_code) expected_html_entities.append(toxml_expanded_chars.get(char, char)) node = get_markdown_element_tree(''.join(rendered_html_entities)) self.assertEqual(node[0].toxml(), ''.join(expected_html_entities))
def test_get_markdown_element_tree_with_illegal_chars(self): """Testing get_markdown_element_tree with illegal characters""" node = get_markdown_element_tree( self.render_markdown('(**Test**\x0C)')) self.assertEqual(node[0].toxml(), '<p>(<strong>Test</strong>)</p>')