comparison test/test_templating.py @ 6279:9ec3a9bc4ea5

issue2551097 - fix call to markdown2 - fix fenced code blocks. The invocation of fenced codeblock support in markdown2 was wrong. With this fixed the code that was used to test markdown processor exception handling no longer works. Fixed test case to make it pass. Added new test with invalid markdown that tests markdown exception handling. Also renamed test to include markdown. Makes using -k option in run_tests easier.
author John Rouillard <rouilj@ieee.org>
date Thu, 29 Oct 2020 17:08:44 -0400
parents 957a0fc20021
children 6ed5152a92d0
comparison
equal deleted inserted replaced
6278:f21ec1414591 6279:9ec3a9bc4ea5
471 print(m) 471 print(m)
472 if type(self) == MistuneTestCase: 472 if type(self) == MistuneTestCase:
473 self.assertEqual(m.replace('\n\n','\n'), '<p>embedded code block &lt;pre&gt;</p>\n<pre><code class="lang-python">line 1\nline 2\n</code></pre>\n<p>new &lt;/pre&gt; paragraph</p>') 473 self.assertEqual(m.replace('\n\n','\n'), '<p>embedded code block &lt;pre&gt;</p>\n<pre><code class="lang-python">line 1\nline 2\n</code></pre>\n<p>new &lt;/pre&gt; paragraph</p>')
474 elif type(self) == MarkdownTestCase: 474 elif type(self) == MarkdownTestCase:
475 self.assertEqual(m.replace('\n\n','\n'), '<p>embedded code block &lt;pre&gt;</p>\n<pre><code class="language-python">line 1\nline 2\n</code></pre>\n<p>new &lt;/pre&gt; paragraph</p>') 475 self.assertEqual(m.replace('\n\n','\n'), '<p>embedded code block &lt;pre&gt;</p>\n<pre><code class="language-python">line 1\nline 2\n</code></pre>\n<p>new &lt;/pre&gt; paragraph</p>')
476 else: # markdown2 doesn't handle attributes with code blocks 476 else:
477 # so processing it returns original text 477 self.assertEqual(m.replace('\n\n', '\n'), '<p>embedded code block &lt;pre&gt;</p>\n<div class="codehilite"><pre><span></span><code><span class="n">line</span> <span class="mi">1</span>\n<span class="n">line</span> <span class="mi">2</span>\n</code></pre></div>\n<p>new &lt;/pre&gt; paragraph</p>')
478 self.assertEqual(m.replace('\n\n', '\n'), u2s(u'embedded code block &lt;pre&gt;\n``` python\nline 1\nline 2\n```\nnew &lt;/pre&gt; paragraph')) 478
479 479 def test_markdown_return_text_on_exception(self):
480 def test_break_on_newline(self): 480 ''' string is invalid markdown. missing end of fenced code block '''
481 p = StringHTMLProperty(self.client, 'test', '1', None, 'test', u2s(u'embedded code block <pre>\n\n``` python\nline 1\nline 2\n\n\nnew </pre> paragraph'))
482 m = p.markdown().strip()
483 print(m)
484 self.assertEqual(m.replace('\n\n','\n'), '<p>embedded code block &lt;pre&gt;</p>\n<p>``` python\nline 1\nline 2</p>\n<p>new &lt;/pre&gt; paragraph</p>')
485
486 def test_markdown_break_on_newline(self):
481 self.client.db.config['MARKDOWN_BREAK_ON_NEWLINE'] = True 487 self.client.db.config['MARKDOWN_BREAK_ON_NEWLINE'] = True
482 p = StringHTMLProperty(self.client, 'test', '1', None, 'test', u2s(u'A string with\nline break\ntwice.')) 488 p = StringHTMLProperty(self.client, 'test', '1', None, 'test', u2s(u'A string with\nline break\ntwice.'))
483 m = p.markdown() 489 m = p.markdown()
484 self.assertEqual(2, m.count('<br')) 490 self.assertEqual(2, m.count('<br'))
485 self.client.db.config['MARKDOWN_BREAK_ON_NEWLINE'] = False 491 self.client.db.config['MARKDOWN_BREAK_ON_NEWLINE'] = False

Roundup Issue Tracker: http://roundup-tracker.org/