Mercurial > p > roundup > code
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 <pre></p>\n<pre><code class="lang-python">line 1\nline 2\n</code></pre>\n<p>new </pre> paragraph</p>') | 473 self.assertEqual(m.replace('\n\n','\n'), '<p>embedded code block <pre></p>\n<pre><code class="lang-python">line 1\nline 2\n</code></pre>\n<p>new </pre> paragraph</p>') |
| 474 elif type(self) == MarkdownTestCase: | 474 elif type(self) == MarkdownTestCase: |
| 475 self.assertEqual(m.replace('\n\n','\n'), '<p>embedded code block <pre></p>\n<pre><code class="language-python">line 1\nline 2\n</code></pre>\n<p>new </pre> paragraph</p>') | 475 self.assertEqual(m.replace('\n\n','\n'), '<p>embedded code block <pre></p>\n<pre><code class="language-python">line 1\nline 2\n</code></pre>\n<p>new </pre> 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 <pre></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 </pre> paragraph</p>') |
| 478 self.assertEqual(m.replace('\n\n', '\n'), u2s(u'embedded code block <pre>\n``` python\nline 1\nline 2\n```\nnew </pre> 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 <pre></p>\n<p>``` python\nline 1\nline 2</p>\n<p>new </pre> 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 |
