diff 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
line wrap: on
line diff
--- a/test/test_templating.py	Mon Oct 26 20:27:23 2020 -0400
+++ b/test/test_templating.py	Thu Oct 29 17:08:44 2020 -0400
@@ -473,11 +473,17 @@
             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>')
         elif type(self) == MarkdownTestCase:
             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>')
-        else: # markdown2 doesn't handle attributes with code blocks
-              # so processing it returns original text
-            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'))
+        else:
+            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>')
 
-    def test_break_on_newline(self):
+    def test_markdown_return_text_on_exception(self):
+        ''' string is invalid markdown. missing end of fenced code block '''
+        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'))
+        m = p.markdown().strip()
+        print(m)
+        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>')
+
+    def test_markdown_break_on_newline(self):
         self.client.db.config['MARKDOWN_BREAK_ON_NEWLINE'] = True
         p = StringHTMLProperty(self.client, 'test', '1', None, 'test', u2s(u'A string with\nline break\ntwice.'))
         m = p.markdown()

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