Mercurial > p > roundup > code
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 <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: # 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 <pre>\n``` python\nline 1\nline 2\n```\nnew </pre> paragraph')) | 478 self.assertEqual(m.replace('\n\n', '\n'), u2s(u'embedded code block <pre>\n``` python\nline 1\nline 2\n```\nnew </pre> 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) |
