comparison test/test_templating.py @ 6277:957a0fc20021

issue2551094 - markdown mismatch - new config for embedded newine Make earlier patch to fix mismatch between simplemde formatting of embedded newlines choosable. New option MARKDOWN_BREAK_ON_NEWLINE added to config.ini. If set to true all 4 renders: markdown, markdown2, mistune and simplemde will make a newline into a hard linebreak using <br> when displayed.
author John Rouillard <rouilj@ieee.org>
date Sun, 25 Oct 2020 16:12:15 -0400
parents bda491248fd8
children 9ec3a9bc4ea5
comparison
equal deleted inserted replaced
6276:177b186dd23a 6277:957a0fc20021
72 self.client.form = self.form 72 self.client.form = self.form
73 73
74 # add client props for testing anti_csrf_nonce 74 # add client props for testing anti_csrf_nonce
75 self.client.session_api = MockNull(_sid="1234567890") 75 self.client.session_api = MockNull(_sid="1234567890")
76 self.client.db.getuid = lambda : 10 76 self.client.db.getuid = lambda : 10
77 self.client.db.config = {'WEB_CSRF_TOKEN_LIFETIME': 10 } 77 self.client.db.config = {'WEB_CSRF_TOKEN_LIFETIME': 10, 'MARKDOWN_BREAK_ON_NEWLINE': False }
78 78
79 class HTMLDatabaseTestCase(TemplatingTestCase): 79 class HTMLDatabaseTestCase(TemplatingTestCase):
80 def test_HTMLDatabase___getitem__(self): 80 def test_HTMLDatabase___getitem__(self):
81 db = HTMLDatabase(self.client) 81 db = HTMLDatabase(self.client)
82 self.assertTrue(isinstance(db['issue'], HTMLClass)) 82 self.assertTrue(isinstance(db['issue'], HTMLClass))
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: # markdown2 doesn't handle attributes with code blocks
477 # so processing it returns original text 477 # so processing it returns original text
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 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'))
479 479
480 def test_break_on_newline(self):
481 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.'))
483 m = p.markdown()
484 self.assertEqual(2, m.count('<br'))
485 self.client.db.config['MARKDOWN_BREAK_ON_NEWLINE'] = False
486
487 m = p.markdown()
488 self.assertEqual(0, m.count('<br'))
489
480 490
481 @skip_mistune 491 @skip_mistune
482 class MistuneTestCase(TemplatingTestCase, MarkdownTests) : 492 class MistuneTestCase(TemplatingTestCase, MarkdownTests) :
483 def setUp(self): 493 def setUp(self):
484 TemplatingTestCase.setUp(self) 494 TemplatingTestCase.setUp(self)

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