summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorIsaac Muse <faceless.shop@gmail.com>2017-01-19 06:51:06 -0700
committerWaylan Limberg <waylan.limberg@icloud.com>2017-01-19 08:51:06 -0500
commitc70b2c4154d9b6e46f282c1f212c52e9fbfa5a07 (patch)
tree3a304d44324a5d0c9b8eabff7a86cc777163b62a /tests
parentb52293b2858138231795aa72aac1cf4799eb8da9 (diff)
downloadpython-markdown-c70b2c4154d9b6e46f282c1f212c52e9fbfa5a07.tar.gz
Tables: Improvements (#530)
Tables now handle escaped pipes when testing, in table borders, and in the inline content. To achieve properly, a bug had to be fixed related to appending escaped chars to the Markdown class. Now appended chars only appear in the current instance. Lastly the first backtick in a table can be escaped rounding out the last corner case.
Diffstat (limited to 'tests')
-rw-r--r--tests/extensions/extra/tables.html74
-rw-r--r--tests/extensions/extra/tables.txt31
-rw-r--r--tests/test_apis.py12
3 files changed, 116 insertions, 1 deletions
diff --git a/tests/extensions/extra/tables.html b/tests/extensions/extra/tables.html
index a0b1f71..b81582c 100644
--- a/tests/extensions/extra/tables.html
+++ b/tests/extensions/extra/tables.html
@@ -284,4 +284,76 @@ Content Cell | Content Cell
<td><code>\</code></td>
</tr>
</tbody>
-</table> \ No newline at end of file
+</table>
+<p>Only the first backtick can be escaped</p>
+<table>
+<thead>
+<tr>
+<th>Escaped</th>
+<th>Bacticks</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>`<code>\</code></td>
+<td>``</td>
+</tr>
+</tbody>
+</table>
+<p>Test escaped pipes</p>
+<table>
+<thead>
+<tr>
+<th>Column 1</th>
+<th>Column 2</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>|</code> |</td>
+<td>Pipes are okay in code and escaped. |</td>
+</tr>
+</tbody>
+</table>
+<table>
+<thead>
+<tr>
+<th>Column 1</th>
+<th>Column 2</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>row1</td>
+<td>row1 |</td>
+</tr>
+<tr>
+<td>row2</td>
+<td>row2</td>
+</tr>
+</tbody>
+</table>
+<p>Test header escapes</p>
+<table>
+<thead>
+<tr>
+<th><code>`\</code> |</th>
+<th><code>\</code> |</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>row1</td>
+<td>row1</td>
+</tr>
+<tr>
+<td>row2</td>
+<td>row2</td>
+</tr>
+</tbody>
+</table>
+<p>Escaped pipes in format row should not be a table</p>
+<p>| Column1 | Column2 |
+| ------- || ------- |
+| row1 | row1 |
+| row2 | row2 |</p> \ No newline at end of file
diff --git a/tests/extensions/extra/tables.txt b/tests/extensions/extra/tables.txt
index a9677ba..d5bd6ea 100644
--- a/tests/extensions/extra/tables.txt
+++ b/tests/extensions/extra/tables.txt
@@ -90,3 +90,34 @@ Odd backticks | Even backticks
Escapes | More Escapes
------- | ------
`` `\`` | `\`
+
+Only the first backtick can be escaped
+
+Escaped | Bacticks
+------- | ------
+\`` \` | \`\`
+
+Test escaped pipes
+
+Column 1 | Column 2
+-------- | --------
+`|` \| | Pipes are okay in code and escaped. \|
+
+| Column 1 | Column 2 |
+| -------- | -------- |
+| row1 | row1 \|
+| row2 | row2 |
+
+Test header escapes
+
+| `` `\`` \| | `\` \|
+| ---------- | ---- |
+| row1 | row1 |
+| row2 | row2 |
+
+Escaped pipes in format row should not be a table
+
+| Column1 | Column2 |
+| ------- \|| ------- |
+| row1 | row1 |
+| row2 | row2 |
diff --git a/tests/test_apis.py b/tests/test_apis.py
index e3de779..7b1214f 100644
--- a/tests/test_apis.py
+++ b/tests/test_apis.py
@@ -758,3 +758,15 @@ PLACE_MARKER= ~~~footnotes~~~
"""
self.create_config_file(config)
self.assertRaises(yaml.YAMLError, parse_options, ['-c', self.tempfile])
+
+
+class TestEscapeAppend(unittest.TestCase):
+ """ Tests escape character append. """
+
+ def testAppend(self):
+ """ Test that appended escapes are only in the current instance. """
+ md = markdown.Markdown()
+ md.ESCAPED_CHARS.append('|')
+ self.assertEqual('|' in md.ESCAPED_CHARS, True)
+ md2 = markdown.Markdown()
+ self.assertEqual('|' not in md2.ESCAPED_CHARS, True)